事前准备
![](https://img-blog.csdnimg.cn/img_convert/a30edbe68eb063882a8ce6629adabb0c.png)
ida主函数
![](https://img-blog.csdnimg.cn/img_convert/f76c6a9980eaf3ee2e4cd3898dacac33.png)
漏洞及其利用思路
这题主函数就一个gets可溢出,子函数有一堆,里面有一个get flag的函数,但是要想办法泄露变量地址,起初想的格式化字符串实现任一地址读。但觉得太麻烦了,在子函数里面查查能发现有mprotect函数,有了此函数nx保护就没啥意义了,直接shellcode就行。
其他的部分和get_started_3dsctf_2016高度相似,wp详解就见那篇吧https://blog.csdn.net/Kata_Jhin/article/details/129540833?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129540833%22%2C%22source%22%3A%22Kata_Jhin%22%7D
exp:
![](https://img-blog.csdnimg.cn/img_convert/03c723d0b1f9a326c34448611ebe58cf.png)
getshell:
![](https://img-blog.csdnimg.cn/img_convert/f564dd403b2f31442bc7cc6994fe8f24.png)