首先,我们检查一下程序的保护机制
Redbud(canary爆破)
发表于
分类于
CTF
House of orange
发表于
分类于
CTF
House of orange因一道同名的题而来,它是在程序没有调用free函数的情况下利用其它漏洞结合IO_FILE来达到利用。
首先利用漏洞修改top chunk的size,然后申请一个比size大的堆,满足一定条件,这个top chunk就会被释放到unsorted bin里。
利用unsorted bin attack,将__IO_list_all指针改写为unsorted bin的头chunk地址
利用漏洞在可控的unsorted bin里伪造IO_file_plus和vtable结构
再次malloc时,由于unsorted bin里的指针被修改了,发生malloc_printerr报错,而malloc_printerr用到了__IO_list_all指针,会从__IO_list_all指向的地方开始查找合适的FILE结构,并调用里面vtable里的函数。因此,我们在vtable里放入system函数即可getshell
我们先来看一下程序的保护机制
Cnss(canary爆破)
发表于
分类于
CTF
Mirage(fastbin的堆头size位有效只有4字节)
发表于
分类于
CTF
Wuda
发表于
分类于
CTF
Sentosa
发表于
分类于
CTF
shadow-400(自己实现的call、ret)
发表于
分类于
CTF
shaxian
发表于
分类于
CTF
Hungman
发表于
分类于
CTF