write by ling.
32c3 ctf总共做了3个题目,简单记录一下。
1. forth
只给了一个ip和端口,通过回显信息知道是yforth,网上直接下到了对应的源码。
在源码中搜索system,找到了如下函数:
yforth支持的命令都用一个code的宏定义出来。
分析_system函数,发现需要带2个参数,一个为执行命令的地址,一个为执行命令的长度。
如果需要执行system(“sh”),那么len=2,所以现在需要知道一个sh字符串的地址。
而因为没有给可执行程序,所以无法知道sh字符串的地址。
之后在源码中寻找泄露的函数,最后找到一个dump,能够实现任意地址任意长度泄露。