large bin attacck

2021-02-02  本文已影响0人  clive0x

对large bin(0x400以上)攻击

1.分配一块0x428内存 ,记为p1。

2.分配0x18内存,防止malloc consolidate。

3.分配目标内存,大小为0x418,小于第一块内存,记为p2。

4.分配0x18内存,防止malloc consolidate。

5.free p1,进入unsort bin

6.分配0x438内存,大小超过p1 0x428,使p1进入largebin

7.设置p1->bk_nextsize为目标区域

8.free p2,进入unsortbin,到目前为止,p1在large bin,p2在unsort bin中。

9.分配一块内存,大小超p2,例p2进入large bin。

10.在_int_malloc() large bin处理代码段,p1->bk_nextsize被赋给p2->bk_nextsize。

知识点:

if ((unsigned long) (size  < (unsigned long) chunksize_nomask (bck->bk)       {

                      fwd = bck;

                      bck = bck->bk;

                      victim->fd_nextsize = fwd->fd;

                      victim->bk_nextsize = fwd->fd->bk_nextsize;

                      fwd->fd->bk_nextsize = victim->bk_nextsize->fd_nextsize = victim

       }

打*号的内存bk_nextsize赋给新插入的victim bk_nextsize。没有做检查。

上一篇下一篇

猜你喜欢

热点阅读