ToB企服应用市场:ToB评测及商务社交产业平台

标题: House Of Force [打印本页]

作者: 盛世宏图    时间: 2024-5-18 01:55
标题: House Of Force
House Of Force
首先先容一下什么是House Of Force
House Of Force 是一种堆利用方法,但是并不是说 House Of Force 必须得基于堆漏洞来举行利用。假如一个堆 (heap based) 漏洞想要通过 House Of Force 方法举行利用,需要以下条件:


  • 能够以溢出等方式控制到 top chunk 的 size 域
  • 能够自由地控制堆分配尺寸的大小

一句话来说,假如我们可以控制top chunk的指针,那么我们就可以达到任意地点写,但是glibc对申请chunk举行了验证
  1. // 获取当前的top chunk,并计算其对应的大小
  2. victim = av->top;
  3. size   = chunksize(victim);
  4. // 如果在分割之后,其大小仍然满足 chunk 的最小大小,那么就可以直接进行分割。
  5. if ((unsigned long) (size) >= (unsigned long) (nb + MINSIZE))
  6. {
  7.     remainder_size = size - nb;
  8.     remainder      = chunk_at_offset(victim, nb);
  9.     av->top        = remainder;
  10.     set_head(victim, nb | PREV_INUSE |
  11.             (av != &main_arena ? NON_MAIN_ARENA : 0));
  12.     set_head(remainder, remainder_size | PREV_INUSE);
  13.     check_malloced_chunk(av, victim, nb);
  14.     void *p = chunk2mem(victim);
  15.     alloc_perturb(p, bytes);
  16.     return p;
  17. }
复制代码
但是当我们把size的值改成一个很大的值好比0xffffffffffffffff,那么就可以轻松绕过这个验证,一般的做法是把size改成-1,因为在举行比较时会把 size 转换成无符号数,因此 -1 也就是说 unsigned long 中最大的数,所以无论如何都可以通过验证。
  1. remainder      = chunk_at_offset(victim, nb);
  2. av->top        = remainder;
  3. /* Treat space at ptr + offset as a chunk */
  4. #define chunk_at_offset(p, s) ((mchunkptr)(((char *) (p)) + (s)))
复制代码
之后会把top指针举行更新,然而size段也会更新更新方法如下
  1. victim = av->top;
  2. size   = chunksize(victim);
  3. remainder_size = size - nb;
  4. set_head(remainder, remainder_size | PREV_INUSE);
复制代码
​ 所以,假如我们想要下次在指定位置分配大小为 x 的 chunk,我们需要确保 remainder_size 不小于 x+ MINSIZE。
题目链接:链接:https://pan.baidu.com/s/1lr2jAQwL9Ow5FVjzrSfbWA 提取码:tx88
查看保护,pie保护关闭

64位ida载入

首先发现了后门函数


add函数

edit函数

值得注意的是这个函数并没有对我们输入的新长度举行判断,那么我们就可以修改到top chunk的siez域,实现House Of Force
先贴一下wp我再详细表明


现在看看调试



-0x70怎么来的
前面我说了需要将top thunk指向我们想要的地方,那么0xf262a0-0xf26260=0x50,而0x10是因为chunk头部有0x10大小,因此我我们下次申请的chunk的起始地点是0xf26250 + 0x10 = 0xf26260,然后我们再修改地点为flag地点再举行调用就可以得到flag
以上均为本人理解,有任何错误烦请各位师傅即使指出
参考文章​  https://tty-flag.github.io/2021/04/20/House-Of-Force.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4