Stack & ROP
1 | TODO.... |
not_the_same_3dsctf_2016
checksec
1 | Arch: i386-32-little |
使用IDA打开,找到main
1 | .text:080489E0 ; int __cdecl main(int argc, const char **argv, const char **envp) |
程序逻辑很清晰,用户输入到var_2D
,此时gets造成了栈溢出。接下来结束利用栈溢出,实现跳转到任意函数,在这里我们发现有一个get_secret
函数执行了读取flag.txt的操作,很明显这是出题人特地放在这里的。但是该函数并不会输出flag.txt的内容到stdout,我们需要再使用write手动输出。
1 | from pwn import * |