【CTF.0X00】LCTF-2018-Pwn Write up

本文最后更新于:2020年11月23日 下午

最近忙的焦头烂额,写点题放松一下…

0x00.绪论

image.png

LCTF——前身是XDCTF(不包括2016及以后的部分),是由L-TEAM@XDSEC主办的CTF,2019年加入D3CTF豪华全家桶

前辈师傅们的出题质量很高,所以我可能卡好几天才会出一道题23333

虽然难是真的难,但是作为协会的小学弟还是要把学长们出过的题刷一刷XD

0x01.easy_heap - off by null + chunk overlapping + Unsorted bin Leak + one_gadget

点击下载-easy_heap

点击下载-libc64.so

惯例的checksec分析,保护全开

image.png

拖入IDA进行分析(部分函数及变量经过重命名

image.png

果不其然,传统的CTF签到题都是堆题,LCTF2018也不例外

我们可以看到程序本身仅会分配大小为0xF8的堆块

image.png

同时本题只允许我们分配10个堆块,在需要用7个来填满tcache的前提下, 可用空间属实有一丶丶紧张

image.png

漏洞点存在于读入输入时,会将当前chunk的[size-1]与[size]都置0

image.png

我们不难想到,若是我们输入的size为0xf8,则有机会将下一个物理相邻chunk的PREV_INUSE域覆盖为0,即存在off by null漏洞

248 = 16*15 + 8

通过off by null漏洞我们便可以实现堆块的重叠(overlap)

0x02.pwn4fun

0x03.justpwn - House of Spirit

0x04.echos