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