hitcon_2018_children_tcache(off by null)
拿到题目例行检查
(我就不放了)
将程序放入ida中
很明显的堆的题目,然后我们进入add函数
可以看到将s复制到dest里面,说明存在off by null 漏洞
这道题目我也上网查询了师傅们的wp(我没想通咋打)
漏洞利用思路: 首先我们先创建三个chunk
chunk3是为了防止chunk2的向下合并,,当我们0和1(表示index的顺序)free掉的时候 我们可以通过申请1去修改2的pre_size 使得2向上面合并,然后我们再将1释放掉,这样012就合并了 然后我们继续申请一个0大小的chunk,这个chunk会从合并的chunk分出来
但是我们可以通过show(0)去泄露出来libc的基址,这样我们就可以获得one_gadget了
最后我们申请一个0x68的chunk,然后将0和2都释放掉(1就是被free掉的chunk)在申请一个chunk
可以看到这个chunk的fd是我们输入的值,
我们就可以通过这个chunk在malloc_hook的位置写上one_gadget ,因为add的时候当使用malloc的时候就会触发malloc_hook,所以我们需要手动的去获得shell
完整exp:
成功的获得flag
结束,加油!!