因为明天就是SWPUCTF2020了,所以今天看看去年的题目。 在buuoj上面搜到两道去年的题目:
- SWPUCTF_2019_p1KkHeap(tcache attack)
- SWPUCTF_2019_login(堆上的格式化字符串漏洞) 第一题是tcache利用,是我没学过的知识点,打算等一下再研究。 所以我先看了第二题,是一个在堆上的格式化字符串漏洞,且可以多次利用,利用方法就是通过栈上已有的地址来控制任意写。
SWPUCTF_2019_login
利用思路:
数据存储比较复杂。 程序先malloc(0x10),来储存heap结构,前0x8储存heap size,后0x8储存heap content指针。 heap固定只能申请0x18或者0x38。 这一题的思路是,off by one修改heap结构的size,这个是heap结构0x10的结构,从0x21改到0x41,这样就实现了Chunk Extend,扩展到了heap的位置。 这时候delete这个,这时候
这道题大家都很熟悉了,这次用的是修改global_max_fast来使用fastbin attack的方法、 官方wp真的不太看得懂,可能还要学习一下IO_File leak相关知识。 官方wp的好处在于,保护全开的时候也能使用,主要是PIE和GOT。所以还是有学习的必要的。 话不多说,看代码吧