吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2431|回复: 2
收起左侧

[会员申请] 申请会员ID:Ironmna【申请通过】

[复制链接]
吾爱游客  发表于 2020-12-1 22:54
1、申请ID:Ironmna
2、个人邮箱:2213829792@qq.com
3、原创技术文章:【Unctf2020】Unlink知识学习
0x1.查看
先查看保护情况:首先知道此题没有地址随机化,可以劫持got表(Partial RELRO)
aa.png
0x2.静态分析
拖到IDA后,提前将菜单,功能都事先标记好、开始进行逐步分析:是一个经典日记题,那基本是堆题目了=_=。               
bb.png
先看一下创建流程,事先确定好日记的存储结构。一共可以创建24个小本本,跟我们小本本有关的三个数组分别是size,ptr,content。当我们创建一个小本本的时候,首先动态申请一个空间用来存放日记内容,ptr数组存储这个指针,然后size数组存储空间大小。但是在54行的位置强行为size进行了加一操作,别说了,off_by_one!之后一切都很和谐,但是紧接着也是我标出来的地方最迷,我们在创建小本本的时候内容先存在content数组里????啊这,不应该存在ptr里嘛,奇奇怪怪的。基础结构分析完毕,接着着重查看剩下三个操作,找到漏洞。     
cc.png
dd.png
删除有两个小问题,首先很显然循环多判断了一次,第25个也能删,然后删除时没有对size数组进行清零,但是漏洞并不能为我们所利用ORZ。
ee.png
Show函数屁用没有,下一个!
ff.png
edit函数就有的玩了,我们会发现这回日记存储进入ptr所指向的空间内了,再加上之前对size强行加一的操作,我们就可以用off_by_one对堆来布局了。   
gg.png
0x3.思考
传统想法应该是off_by_one加上malloc_hook来getshell。但是对于本题来说,show无法使用,也就是说我们无法泄露malloc_hook地址,所以我们需要另辟蹊径,得利用我们所知道的地址了。经过我不懈努力(百度)终于发现:由于未开地址随机化,所以对于ptr,size这些数组的地址我们都是可以知道的,而且我还惊喜地发现了后门函数。啊这,那我们就可以利用unlink来解决这道题目了。
hh.png
0x4实操
对于unlink来说最核心的部分就是欺骗检查:
P->fd->bk == P
P->bk->fd == P
通俗的来说那就是要保证前一个块的后面是你,后一个块的前面也得是你,当然这是正常的情况。【手动滑稽】
对于这道题来说,我们知道ptr数组中存放的就是本块的地址,那我们就可以这么构造了(画的比较粗糙,各位见谅哈orz)file:///C:/Users/ASUS/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpg
ii.png
这样构造后,便能够绕过检查。紧接着重头戏来了,当我们如此绕过检查后,堆块便会合并
P->fd->bk = P->bk
P->bk->fd = P->fd.
那么简单的算下来,发现ptr_addr=ptr_addr-0x18!!!!!!!!!!
此时我们的ptr指针已经指到-0x18的位置上了,而且此时以ptr-0x18的位置已经被系统识别为了一个chunk,这个chunk的内容就是ptr_addr!!!!!!!!!!
假设我们事先填充到P这个块为puts.plt.got的地址,在进行正常的修改时实际上已经写到了got表中puts的地址。我们输入后门函数地址后,等到系统下次再运行到puts时,便跳转到我们的后门地址上了,成功getshell!
脚本如下:     

jj.png
题目相关资源:
链接:https://pan.baidu.com/s/1bo4DtmMv-eank7LRUwl8HA
提取码:2333

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2020-12-4 18:09
I D:Ironmna
邮箱:2213829792@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
Ironmna 发表于 2020-12-4 21:45
本帖最后由 Ironmna 于 2020-12-5 10:35 编辑

报道,感谢H大orz
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表