-
-
[原创]KCTF2022秋季赛第二题 多解问题
-
2022-11-21 01:52
6661
-
直接运行,给一个任意输入,如图1:
拖入IDA分析,如果输入正确结果,程序输出“success!”。如图2:
接着发现使用了gets函数来接收输入,可能存在栈溢出的漏洞,给一个超长输入,发现main函数返回时崩溃,说明应该是覆盖到返回地址了,程序存在漏洞,如图3:
分析栈空间可知,main函数返回地址为0x0040292f,我们只需输入内容覆盖该地址即可改变程序流程。如图4:
分析可知,成功模块的地址为0x004027e6,所以我们只需要将栈上0x0040292f覆盖为0x004027e6即可。如图5:
当将我们精心构造的输入结果输入时,程序成功走到“success!”分支,其中的字符‘a’可替换为其他任意可输出字符,所以程序应该存在多解的情况。
[竞赛]2024 KCTF 大赛征题截止日期08月10日!
最后于 2022-11-21 15:22
被kanxue编辑
,原因: