unlink pwn
时间: 2023-10-31 08:18:19 浏览: 147
在计算机安全领域,"unlink"是一种常见的堆溢出攻击利用技术。它利用了"Use-After-Free"漏洞,该漏洞在释放内存后仍然使用该内存的指针。
在具体的实现中,"unlink"攻击需要使用全局变量,并进行多次写入。攻击者通过修改堆上的数据结构,使得被释放的堆块的前后指针指向了攻击者想要控制的地址。
下面是"unlink"攻击的主要步骤:
1. 攻击者需要一个全局指针变量p,该变量指向一个堆块。
2. 攻击者通过修改p的fd和bk指针,将p链接到自身的前后堆块上。
3. 攻击者检查p->fd->bk和p->bk->fd是否都指向p,如果不是,则意味着堆块链表被破坏,攻击失败。
4. 如果上述检查通过,攻击者将p->fd->bk指向p的前一个堆块,将p->bk->fd指向p的后一个堆块,完成"unlink"操作。
5. 攻击者可以利用这个被解链的堆块进行任意的内存写入或执行其他操作,从而实现对程序的控制。
总结起来,"unlink"攻击利用了堆溢出漏洞中的"Use-After-Free"漏洞,并通过修改堆块的前后指针来实现对程序的控制。这是一种常见的攻击技术,需要仔细的堆结构分析和理解。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [【pwn学习】堆溢出(三)- Unlink和UAF](https://blog.csdn.net/Morphy_Amo/article/details/122631424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [pwn unlink](https://blog.csdn.net/qq_37433000/article/details/103500857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文