首页
社区
课程
招聘
[原创]第四题 ReeHY-main wp
发表于: 2017-6-7 15:59 5559

[原创]第四题 ReeHY-main wp

2017-6-7 15:59
5559

正常的double free题目。

题目在del的时候没有检查inuse位而直接free内存。可以触发double的利用。然后通过double free将一块正在被使用的内存free掉就是一个uaf。

这里我使用的方法是使用uaf去触发著名的unlink漏洞来完成利用。具体的技术原理可以看我以前写的博客ec8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3I4A6j5X3y4Q4x3X3g2H3N6#2)9J5c8U0t1H3x3e0g2Q4x3V1j5H3z5q4)9J5c8U0l9@1i4K6u0r3i4K6t1#2c8e0g2Q4x3U0g2m8x3q4)9J5y4e0R3$3i4K6t1#2c8e0k6Q4x3U0g2n7b7g2)9J5y4f1p5J5i4K6t1#2c8e0g2Q4x3U0f1^5y4#2)9J5y4f1u0m8i4K6t1#2c8e0k6Q4x3U0g2n7b7#2)9J5y4e0S2r3i4K6t1#2c8e0k6Q4x3U0g2n7y4q4)9J5y4e0W2q4i4K6t1#2c8e0N6Q4x3U0g2m8c8g2)9J5y4e0R3H3i4K6t1#2c8e0c8Q4x3U0g2n7b7W2)9J5y4e0S2n7i4K6u0r3


总的流程是这样的,首先create一块大小为0x1000的内存在index_1的位置然后释放,这样index_1处就有一个野指针,然后再创建一个0x1000的内存在index_0上。这时候0和1都是指向同一个内存的。然后再创建一块内存,防止之后free的chunk被合并到top chunk中。接下来就是在一个次释放index_1。这样虽然index_1指向的内存已经被释放了,但是仍然可以通过edit去修改。

此时内存结构应该是这样的

末尾的pad仅仅用来防止top_chunk的合并。



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 2
支持
分享
最新回复 (5)
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2017-6-20 17:43
0
雪    币: 240
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2017-6-22 00:49
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2017-7-26 18:06
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然看不懂,但是希望在网路生涯继续提供知识共享~好人一生平安
2017-8-27 00:13
0
雪    币: 5
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
2017-10-30 16:23
0
游客
登录 | 注册 方可回帖
返回