fast bin漏洞利用
http://www.vuln.cn/6653
http://www.vuln.cn/6654
http://www.cnblogs.com/Ox9A82/p/5865420.html
顺便mark下,明天看完
http://bobao.360.cn/ctf/detail/189.html
http://bobao.360.cn/learning/detail/3694.html
fastbin的检查大概就只有两个
- 现在malloc的和栈顶的不能是同一个chunk, 可以用
a -> b -> a
, 这样来绕过 - 要malloc出来的chunk的size要是符合大小的, 所以一般控制
a -> fd
为 某一可控的controll_addr - size_t
, 这样controll_addr
就会被认为是fake_chunk
的size
…在这个可控地址上写一个合适的size
, 就OK了
...
size_t victim_idx = fastbin_index (chunksize (victim)); // 我们fake_chunk的size取出来
if (__builtin_expect (victim_idx != idx, 0)) //如果我们fake的size和nb对应的下标不同, 就说明这个fastbin的大小不合适
malloc_printerr ("malloc(): memory corruption (fast)");
...