特别的ActiveX再操纵攻击的诀窍及技术[网络技术]
本文“特别的ActiveX再操纵攻击的诀窍及技术[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Copyright (c) 2009 Czy Invicta <Hack01@Live!cn">Hack01@Live!cn>
All rights reserved.
==> 0x00 [前言]
~~~~~~~~~~~~~~~~~~~
在本文章中,我并不对ActiveX控件的基本攻击筹划举行谈论.我在这里所要谈论的是利用很多风趣的诀窍和技术来开辟操纵ActiveX控件,无论你是浸透测试工作者还是计算机地下成员,这些诀窍和技术你在测试的时刻都可以用.当然,你首先必须掌握它的基本知识,这样你在阅读此文章的时刻不会碰到窘境而影响你的热忱度.下面我将一一描写并写出例子代码来谈论特别情形下值得掌握的一些技术.
趁便提一下,为了避免坐牢或丢掉工作的危险,确保你具有在组织或企业的网络中履行下面技术的答应权,我激烈倡议你手头有一张打印出来的答应文件.
==> 0x01 [非常处理:利用try-catch]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
普通来说,ActiveX控件是不会泄露本地硬盘存放了哪些文件的,但是ActiveX控件返回给Internet Explorer的报错信息常常给攻击者供应这些有效的信息.为了在JavaScript中返回这些非常,需求在调用产生报错信息的办法或属性的测试代码中增添try-catch块.从根本上讲,这些漏洞存在于那些名为Load,Open或*File的办法或属性中.基本上,要对任何试图加载或翻开文件的行为举行测试.
下面是关于若何构建测试用例的一个简单例子,但它不一定完善.在这个例子中,一个攻击者想要证实能否存在设置了ActiveX控件的ConfigLocation属性的文件.假如文件被成功加载,代码将不会进入catch部份;假如文件没被加载,代码就会进入catch部份.
<OBJECT id="AX" classid=CLSID:12345678-1234-1234-1234-123456789ABC>
<script>
try {
AX.ConfigLocation = "c:\\secret.txt";
Alert("File exists!");
}
catch (oException) {
alert("File does not exist");
}
</script>
仅因为控件弹出一个非常而使代码进入catch部份,这并不一定意味着文件不存在.潜在地,加载的时刻很多事情都大概失利(比方撤消跨域告诫),这些也大概招致出错.但是,假如控件供应出错的细节,攻击者就可以探查到.
当代码碰到catch块的时刻,差别的错曲解用差别的数字来表示.这个特定的例子报告了ConfigLocation属性是若何工作的:
1. 获得文件名的值
2. 首先查抄扩大名能否为.xml或.txt
3. 然后查抄文件能否存在
4. 最后,查抄它能否为一个有效的XML文件
这里,至少有3个差别的位置会出错,也正因为如此,返回的差别错误号码会给攻击者供应重要的信息.
为了解析这些具体的信息,攻击者可以在他们的catch声明中增添逻辑以探求要呈现的特定的非常号码,像下面这样:
<OBJECT id="AX" classid=CLSID:12345678-1234-1234-1234-123456789ABC>
<script>
try {
AX.ConfigLocation = "c:\\secret.txt";
Alert("File exists!");
}
catch (oException) {
//该数字用来表示文件不存在
if (oException.number == "2471683291") {
alert("File does not exist");
}
else {
alert("File exists!");
}
}
</script>
我趁便提醒一下,典型地,假如差别出错事件的非常号码相同,那么非常的描写(或消息)属性也将相同.但也并不老是如此,它还要依靠于在代码的什么位置设置描写.
==> 0x02 [返回值]
以上是“特别的ActiveX再操纵攻击的诀窍及技术[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |