看到首页中system知道a为传入的命令
尝试ls / 可以得到/下目录
尝试执行/readflag显示一个字符串
尝试使用cat等读取readflag看是不是正常文件
显示乱码,搜索flag没信息,打开源代码查看并搜索flag
显示如上一个表达式 %d + %d = %d , 可能这个readflag是一个交互式二进制文件
我们尝试构造语句模拟输入
echo -e
生成交互式输入表示两个数字结果为100 管道|
将这些输入传递给/readflag
echo -e 'y\ny\n100\n' | /readflag ( 这里使用y而不是其他字符,可能是因为交互中要求使用y进行输入确认吧什么的,我看评论区大哥搞的)
这个payload会让目标程序随机生成一个表达式,如果表达式结果和100撞上了那就由flag,我们这里使用bp 爆破
对数据包设置一个1-100的狙击手爆破就可以,多试几次就能够碰撞上
如图长度最长的为最终结果