2021天翼杯PWN
前言
太菜了,一题没出;又是抱着大佬WP跟着复现~
来源:http://www.darry-long.top/2021/09/23/2021-%E5%A4%A9%E7%BF%BC%E6%9D%AF-pwn/
chaos
image-20210926091254408
常规checksec,64位保护全开
image-20210926100956854
第一次进行比较长的代码审计,对我来说还是比较困难的,基本上都是跟着大佬的注释边写边考虑逻辑
image-20210926101234190
image-20210926101445271
image-20210926110301065
这保存的是一个单链表结构,在每个申请出来的堆块上的0x210保存在前一个堆块的地址,在0x208处保存着当前堆块可写入的数据的长度,所以是存在堆溢出的,修改了size就可以修改保存堆块的地址,变成任意地址写或者修改下一块堆块的堆头、fd\bk指针等。因为是单向链表结构,所以是一个一个追溯的,越晚申请的堆块序号越靠前,但是在堆上的地址其实是靠后的
image-20210926121301503
image-20210926121807097
最终在我本地调为符合one_gadget的环境要求,可是不知道为什么最终却没有getshell
1 |
|
ezshell
image-20211003091318701
程序很简单,总的说就是输入内容,然后转移到可执行的地址上去执行。
image-20211003091835842
然后开启了沙箱,只允许使用 open 和 read 函数,同时要求 read 函数的 fd 参数右移32位后仍然大于0或者是大等.于4
image-20211003091716855
可写可执行段在0x10000~0x11000
首先orw是没跑了,但是没有write,所以只能是逐字节进行爆破的思想:根据是否异常区分爆破的字符对错。但是我愣是没做出来,算了,思想知道就行,官方wp我跑了本地也没出,差评!
贴个官方的wp好了
1 |
|
- 本文作者:ShouCheng
- 本文链接:http://shoucheng3.github.io/2021/09/26/2021-09-26-2021%E5%A4%A9%E7%BF%BC%E6%9D%AFPWN/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!