2021强网杯PWN
September 14, 2021
1748
复现来源:
https://blog.csdn.net/eeeeeight/article/details/118006138
https://cloud.tencent.com/developer/article/1839670
orw
checksec一下,64位,堆栈可执行
进入IDA,只存在申请和释放堆块的功能,其中,申请最多两次,释放只有一次。
首先,没有检查索引下限,所以存在数组越界,可以越界到got表。然后输入函数中,如果我们在输入size时,直接输入’\n’,将会让size直接为0,而如果size为0了,在往堆里面输入数据是就可以无限输入,因为在检验那里,buf一旦获得跟ptr一样的地址,而buf又要先自加,才就会导致一直都将大于ptr,验证一直都是没有问题的
程序有沙箱,所以就是orw。加上前面发现的漏洞点,结合起来就是,通过数组越界,将堆块指针写入到函数的got表里面,然后因为无限输入,堆块又可执行,所以往堆块里面写入shellcode,最后就是调用被修改函数,转而去执行shellcode来读取flag
然后呢,本地复现不了,暂时不知道该怎么让文件去链接上题目给的seccomp文件,所以只能讲讲思路
1 |
|
- 本文作者:ShouCheng
- 本文链接:http://shoucheng3.github.io/2021/09/14/2021-09-14-2021%E5%BC%BA%E7%BD%91%E6%9D%AFPWN/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
查看评论