secret_file
拿到题目例行检查,进入main函数
这个逆向有些复杂,程序首先让我们像dest输入256个字符,我们可以看到关键的strcmp(v15,v17),若相等则执行poppen
poppen这个函数有额外的功能就是可以运行权限命令
所以关键的点就是v15和v17
这道题目的溢出点就是 strcpy(dest, lineptr);没有限制数值的量
经过逆向分析,v15放入的是sha256后的值,v17放出的是以前v15sha256的值
所以我们可以通过溢出溢出到v14运行我们的命令然后将sha256后的值填入v15
这样判断相等就可以运行我们的命令
完整exp如下
注:需要先查找flag的目录
成功获得flag