jarvisoj_level2
jarvisoj_level2
benksihjarvisoj_level2
逆向分析
这个题目依旧提供了附件,依旧是ida分析钱先checksec一下
发现没有PIE和stack防御,再用ida分析一下
发现main函数先调用了另一个函数,去看看
发现read函数存在栈溢出,经计算需要140位填充才能覆盖地址。看一看程序里有没有/bin/sh字符串,也是可以用ROP命令去查的我用这个命令ROPgadget --binary ./level2 --string "/bin/sh"
发现/bin/sh字符串这样就不用自己去输入了,再找一下system的plt地址,ida里就能找到,再找一下ret的地址进行栈对齐
只需要ret的地址就行了,最后写一下payload
[!IMPORTANT]
函数里有system函数的一定要通过pwntools里的recvuntil这个命令去跨过它不然就会进入system的命令流出不来了read函数也就接受不到消息,栈溢出也就无从谈起了。
payload
1 | from pwn import * |
尝试一下
成功!
flag:
评论
匿名评论隐私政策









