-
-
[原创]ciscn_2019_final_3题解
-
发表于: 2020-10-7 21:48 7175
-
题目地址:a6fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1N6i4g2G2K9W2)9J5k6h3y4F1i4K6u0r3j5$3S2S2L8r3I4W2L8X3N6W2M7#2)9J5x3$3y4A6M7$3y4F1i4K6g2X3x3U0l9I4z5g2)9#2k6X3k6A6L8X3q4D9i4K6g2X3x3H3`.`.
先放exp
首先申请几个 chunk,然后对其中一个 free 两次,因为有 tcache 机制,所以可以 free,且会放在同一个 tcache 链表中 0x555555768e70
接下来申请回来 0x50,反手把 fd 指针改掉,改成 0x555555768e70-0x11e60=0x555555757010
一开始没太理解怎么回事,然后我发现在一开始 remove 之后 0x555555757070
这里就有指向第 0 个的指针了,难道这是链表头部?
一点一点看看,首先是全部申请之后:啥都没有
对第 0 个 remove 一次之后:出现了第 0 个的地址
对第 0 个第二次 remove 后:第 0 个的 fd 也指向第 0 个了,合情合理
然后去 malloc 一个,同时把 fd 指针改成 0x0000555555757010
因为 free 了两次,所以应该还指向第 0 个,但是第 0 个的 fd 指针已经改变了
然后再去申请一个的话 tcache 就指向更改的那个 0x0000555555757010 了
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- 对某款智能手表的分析与攻击 14911
- [原创][车联网安全]使用STM32开发板实战汽车UDS诊断 17761
- [分享]binwalk路径穿越导致RCE(CVE-2022-4510) 10534
- [原创]Hack-A-Sat 2020预选赛 beckley 14071
- [原创]一个BLE智能手环的分析 32924
赞赏
雪币:
留言: