原文中文,约9200字,阅读约需22分钟。
📝
内容提要
这篇文章介绍了一种名为"House of Muney"的堆利用技术,可以绕过ASLR实现代码执行。文章详细解释了该技术的利用条件和原理,并提供了相关的代码和演示。该技术需要能够溢出size位并分配大块内存。文章指出在2.40版本的libc上可能会出现问题。
❓
Q&A
什么是House of Muney技术?
House of Muney是一种堆利用技术,可以在没有泄露的情况下绕过ASLR实现代码执行。
House of Muney技术的利用条件是什么?
该技术的利用条件包括Partial RELRO / No RELRO、能够分配较大的堆、以及能够改写堆的prev_size和size字段。
在使用House of Muney时,malloc的mmap_threshold是什么?
在x86_64上,malloc的mmap_threshold一般为128KB。
如何通过House of Muney实现代码执行?
通过修改chunk的size字段,可以覆盖libc的一部分,伪造Elf64_sym结构体以实现代码执行。
在使用House of Muney时,free操作的完整性检查有什么问题?
free操作只检查chunk是否对齐,而不检查prev_size和size,这使得可以munmap任意大小的chunk。
House of Muney在libc 2.40版本上有什么问题?
在libc 2.40版本上可能会出现问题,导致free操作失败。