-
-
[原创]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 合并
当 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编辑
,原因: 排版
赞赏
他的文章
- 对某款智能手表的分析与攻击 6437
- [原创][车联网安全]使用STM32开发板实战汽车UDS诊断 15013
- [分享]binwalk路径穿越导致RCE(CVE-2022-4510) 9980
- [原创]Hack-A-Sat 2020预选赛 beckley 13583
- [原创]一个BLE智能手环的分析 31543
看原图
赞赏
雪币:
留言: