pwn1_sctf_2016
pwn1_sctf_2016
benksihpwn1_sctf_2016
逆向分析
依旧是ida分析
可以看到main函数单纯就是调用了vuln这个函数,我们再看看vuln这个函数在干啥。
可以看到这段代码逻辑是十分混乱的看不懂,我们可以猜测,看见了I,you和replace,我们可以猜测它实现了将原先的I替换为了you
可以通过运行这个文件来检查
很明显,这个程序就是我们分析的那样。
我们又在程序里找到了一个后门函数getflag,地址为0x08048F0D,由于strcpy这个函数不检查边界,我们可以通过31*3=93位的栈溢出来攻击它。接下来就是计算需要溢出几位,这个就不能直接用cyclic测出来了。只能看ida上面ebx这个证明是32位程序,所以应该是0x3c+4=64位,所以可以通过21位的I加上1位的a来溢出。
payload
1 | from pwn import * |
直接执行
成功获取flag
flag:
评论
匿名评论隐私政策








