首页
社区
课程
招聘
[原创]PWN:Unsortedbin Attack学习
发表于: 2020-8-26 09:52 6852

[原创]PWN:Unsortedbin Attack学习

2020-8-26 09:52
6852


双向循环链表,先进先出,以下几种情况会分到 unsorted bin 中

1、当一个较大的 chunk 被分割成两半后,如果剩下的部分大于 MINSIZE,就会被放到 unsorted bin 中

2、释放一个不属于 fast bin 的 chunk,并且该 chunk 不和 top chunk 紧邻时,该 chunk 会被首先放到 unsorted bin 中

3、当进行 malloc_consolidate 时,可能会把合并后的 chunk 放到 unsorted bin 中,如果不是和 top chunk 近邻的话


unsorted bin attack 是控制 unsorted bin 的 bk 指针,达到任意地址改为一个较大的数的目的

gcc -g unsorted_bin_attack.c

分别在 10、13、16、19 下断点

然后运行,一开始先申请两个 chunk,第二个是为了防止与 top chunk 合并


image.png


当 free之后,这个 chunk 的 fd、bk 都指向了 unsorted bin 的位置,因为 unsorted bin 是双向链表嘛



继续,通过 p[1] = (unsigned long)(&stack_var - 2); 把 bk 指针给改掉了 unsigned long 是 8 字节大小的,所以减去 2 之后正好是在 address 这个地方



然后再去申请的时候需要把释放的那一块给拿出来,操作如下:

把 unsorted bin 的 bk 改为 chunk 的 bk,然后将 chunk 的 bk 所指向的 fd 改为 unsorted bin 的地址




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-8-26 09:53 被yichen115编辑 ,原因: 排版
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//