KCTF2019 Q3
前言
看雪的比赛,第三赛季,后面俩pwn好像是kernel的,打扰了,做了第一个pwn就忙项目去了,第二个等今天放wp之后看着大佬的学了一下
pwn1
漏洞利用
程序有off-by-one,libc是2.23,出题人自己写了个malloc_hook,每次malloc的时候都会重写malloc_hook,因此覆写不可行,没有show,这个还是爆破该stdout,给了heap地址,最后构造fake vtable劫持文件控制流。
exp.py
1 | #coding=utf-8 |
0xbird
前言
出题人自己实现的malloc和hook,这种题第二次见到,只是这次的逻辑更为复杂,直接劝退了,出了wp再看感觉自己真太菜了,稍微看看其实就能搞出来的。
漏洞利用
漏洞在于Free之后的UAF,每个chunk的后两个8字节分别为next和prev,每次Malloc的时候根据0x602558找最近释放的块,再用prev指针找下一个空闲块,分配的时候有一个size的check,我们用UAF分配到chk_lis上面的stdout(size:0x7f),劫持chk_list再Edit为atoi@got,最后覆写为shellcode_addr.
exp.py
1 | #coding=utf-8 |