做一下笔记。这道题的限制还是挺多的。版本不低不高2.27
限制:
1.Delete 3次限制
2.程序只能进行18次增删改查
3.有UAF和Double free
4.2.27不包含对tcache的double free 检查机制
5.exec被禁用。但是有一片可读可写的内存空间用以shellcode
要点:
1.通过double free 可以快速的从tcache bin 中绕过。 方法是:double free 同一块,此时count为2。之后create3次相同大小的chunk。2-3就会导致count=-1.但是在比较时,tcache_count是无符号的,count是有符号数。-1>7。所以可以快速绕过
2.
prctl 会限制指令。所以需要事先检查一下
seccomp-tools dump ./SWPUCTF_2019_p1KkHeap
3.如果限制太多,不能同时攻击目标地址(执行shellcode)和hook函数,那么就可以攻击tcache表头,攻击了表头,也就是tcache_entry 就可以进行任意地址分配