[第五空间2019 决赛]PWN5题解
先检查开了什么保护
这里有canary 所以不可以直接栈溢出
打开ida查看
可以看到21行
1 | printf(buf) |
这里有格式化字符串的漏洞
函数只需第一个读取的和第二次输入的一致就会执行拿到权限
可以看到,aaaa在第十个被解释成格式化字符串
fmtstr_payload函数:
fmtstr_payload
函数会根据提供的偏移量和写入内容,生成一个用于触发格式化字符串漏洞的 payload。这个 payload 在被输出时会利用格式化字符串的特性,动态地将指定的数据写入到指定的地址上
所以可以将第一个从文件中读取的变成我们写入的内容
接着运行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鱼非愚!
评论