[HNCTF 2022 Week1]ezr0p32
nssctf链接:https://www.nssctf.cn/problem/2930
一道简单的ret2text的题目,给的是32位程序,并且还调用了system输出,不过一般是不会在system中echo的,这也是为了照顾新生
写入/bin/sh调用system即可getshell
|
|
原本以为可以快速调试获取shell,但是在gdb中每次运行完system都会出问题
大致的意思就是system调用时通过vfork创建了子进程,导致gdb去追踪子进程。起初遇到这个问题也是一头雾水的,后面向多位师傅咨询了一下,有效的解决方案大致有两种
- set $eip=0x8048567也就是直接跳过这个函数保持gdb的调试
- set follow-fork-mode parent设置保持对父进程的追踪调试
使用follow-fork-mode会更好一些,当然调试的时候输入还是挺麻烦的,可以写进.gdbinit
以后遇到system函数就可以愉快地ni了~