picoctf_2018_rop chain
拿到题目就知道要用rop来做
老样子日常检查一下


32位的程序开启了nx和relro保护
将程序放入ida中

一眼就看到了程序中的后门程序
我们逐一分析一下
main

vuln

get没有对输入字符进行显示所以存在栈溢出
flag

当win1和win2和a1=-559037827成立就可以获取到flag
所以我们进入win1和win2分别看一下


在win2中a1=-1163220307时win2=1
所以思路就是我们让win1win2和a1分别成立然后就可以获取到flag
a1的值我们可以按下tab查看
如

完整exp如下

成功获取到flag


结束

浙公网安备 33010602011771号