Hello_World
1.很简单的一个程序,IDA打开,32位程序,main函数-hello函数中
1 | #注释头 |
buf距离栈底有0x12h,而可以读入的数据有0x64h,所以可以栈溢出。
2.checksec一下,开了NX,不能shellcode,这里也不需要,因为我们的输入并不会被当成指令来执行。
3.程序中自带后门getShell函数,并且有栈溢出,那么直接覆盖hello函数的返回地址跳转即可。
4.编写payload:
payload = “a”*(0x12+0x04) #padding
(其中0x12是覆盖掉距离栈底的内容,0x04是覆盖掉hello函数返回的ebp,之后才是覆盖hello函数的返回地址)
payload += p32(0x0804846B) ##覆盖返回地址
5.之后输入,然后Interactive()即可。
参考资料:
https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=157