time_formatter(uaf)


拿到题目先例行检查

然后进入主函数查看程序流程,

 进入函数

 这些字符串对我们选择1的输入进行了限制

 在输入里面,可以看到strdup这个关键性的函数

 调用了malloc这个函数

 在选择四里面,可以看到system运行我们选择1输入的内容,

 选择三的输入,则没有对我们输入的字符串进行限制

 选择5可以看到程序先进行free的操作,然后才会询问,我们可以选择N不退出,且指针没有归零存在uaf漏洞

所以这道题的思路就是:在一输入字符串,选择5后不退出,进入三在相同空间大小下加入/bin/sh,从而让四运行system(/bin/sh)拿到shell

完整exp如下: