在Top Chunk中有一个值得留意的地方是,在Glibc的许多版本中,Top Chunk的Size字段都是没有完备性检查的,这就是The House of Force的根本原理
在2005年,第一次出现了一篇名为The Malloc Maleficarum的论文,其中写了5种堆使用的技巧;
Houses of Prime
Houses of Mind
Houses of Force
Houses of Lore
Houses of Spirit
今后之后的堆使用技巧也因此都叫"house of XX"这样的形式
House of Force
原理
house of force的原理就是前面提到的,没有对Top Chunk的size字段进行完备性检查;
这导致在分配了一个比较小的chunk后,如果输入的内容大于chunk的大小,进而溢出到top chunk的size 字段,就可以伪造控制top chunk的大小;
之后再一次使用malloc分配chunk,可以到达一个任意地址写的结果,运用恰当也可以实现RCE的结果;
漏洞程序本身