也说说Stud_PE

Stud_PE不常用,昨天无意中发现Stud_PE有个溢出,确切的说是两个。当然,这种明显的问题早就有人发了:http://www.exploit-db.com/exploits/11911/。

其实这个函数里有两个地方可以溢出,但均由于wsprintfA使用不当导致。首先是Export里的Name处理不当,wspritnfA格式化“Module Name:%s”的时候溢出,另外就是exploit-db里的那个。超长的导出表原始DLL名称和超长的导出函数都能让导致溢出。

在利用上有些不同,超长导出函数的就不说了,很常见的栈溢出,链接里的PoC改改jmp esp地址还是有效的。超长原始DLL名称,只能用覆盖SEH的方式利用。因为超长字符串导致了某些局部变量被覆盖,在往后的某个函数中导致异常。只需要覆盖SEH的2个字节即可,在Stud_PE里找一个pop/pop/ret。

新版的Stud_PE,v2.6.1.0修复了这两个地方可能导致的溢出,在wspritnfA里面加了长度限制,而编译器也从VC6变成了VC 2005。

发表评论