glibc2.26下针对Tcache的利用手段

本文介绍了glibc2.26引入的Tcache机制及其带来的安全问题,包括Double Free、House of Spirit、Overlap Chunk和Poison Next Pointer等利用手段,并探讨了整数溢出的隐患。通过示例代码和分析,揭示了Tcache如何在提高效率的同时降低了安全性。
摘要由CSDN通过智能技术生成

Tcache机制出现是在glibc版本为2.26的时候 glibc引入tcache的原因是为了更进一步加快chunk的分配 但一方面却在安全性上大打折扣
示例代码取自ctf-all-in-one

Tcache Double Free In Glibc2.26

#include <stdlib.h>
#include <stdio.h>

int main() {
   
    void *p1 = malloc(0x10);
    free(p1);
    free(p1);
    return 0;
}

没错 直接free两次就可以实现double free 因为在Tcache中free的时候是直接挂入到tcache的 没有任何check 所以连续两次free同一个chunk 是完全可行的

House Of Spirit In Tcache In Glibc2.26

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
   
    malloc(1);  // init heap
    unsigned long long *a, *b;
    unsigned long long fake_chunk[64] __attribute__ ((aligned (16)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值