time_formatter(uaf)
拿到题目先例行检查
然后进入主函数查看程序流程,
进入函数
这些字符串对我们选择1的输入进行了限制
在输入里面,可以看到strdup这个关键性的函数
调用了malloc这个函数
在选择四里面,可以看到system运行我们选择1输入的内容,
选择三的输入,则没有对我们输入的字符串进行限制
选择5可以看到程序先进行free的操作,然后才会询问,我们可以选择N不退出,且指针没有归零存在uaf漏洞
所以这道题的思路就是:在一输入字符串,选择5后不退出,进入三在相同空间大小下加入/bin/sh,从而让四运行system(/bin/sh)拿到shell
完整exp如下: