关于global_max_fast的利用
关于global max fast的利用技巧。
global_max_fast 的利用
现在才知道 global_max_fast 的一个小技巧,我之前一直以为就是在没有 fastbin 的时候能构造 fastbin。但是没想到它能在 libc 中任意写。首先 fastbin 是存在 fastbinY 数组当中,它的长度好像只有 10。
但是我如果把任意的size都视为fastbin的话,那么这就有一个下标越界了。
比如我把 0x40000 的 chunk 当成 fastbin,那么在free 的时候就会有这样的语句出现:
1 | main_arena->fastbinY[0x4000]=chunkptr |
我这个size 如果能改的任意,那么它就能写在 main_arena 之后的任何的地址。并且由于它在 libc 的地址是固定的,所以我要往一个 libc 中的地址写上堆的地址就很容易。
这里就mark一下,以后遇到了来这更一下传送门,目前也没有找到什么好的例题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 xia0ji233's blog!