C_LBY's BLOG|
我们联合,形成两面包夹芝士!
post @ 2024-03-05
post @ 2024-03-02
UnsortedBin
最近学习堆题的时候接触到了unsortedbin的利用,感觉还挺有意思的,所以先把它的源码读了,方便以后构建利用思路。之所以这里分析glibc2.23的代码而非2.35的代码,是因为从2.29开始,unsortedbin加入了一坨检查机制以至于它在高版本下难以被攻击,所以索性读低版本的了。
glibc2.23在unsortedbin中取chunk的时候的检查:
post @ 2024-03-01
0x00 前言(patchelf的正确打开方式)
正好最近在学习堆入门,想起来去年还有newstar的题没复现完,所以干脆拿来当堆入门的练手了。但是在做完准备写wp用动调分析的时候遇到了一个问题。我的主力Linux是Ubuntu22,glibc版本是2.35,我学习堆也是从2.35开始往低版本对比学习,如果题目环境glibc不一样(一般都不一样,2.35版本太高了),则需要用patchelf来修改动态链接库以便gdb分析,但是按照网上的流程来patch怎么都不能成功。
1 | patchelf --set-interpreter ~/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc.so.6 --set-rpath ~/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ Double |
post @ 2024-02-17
TcacheBin Attack
根据源代码我们可以得知,高版本的glibc给tcachebin引入了检查机制,使得攻击没那么方便了,但正所谓道高一尺魔高一丈,没有攻不破的系统,只有不努力的黑客。tcache的检查机制主要有两个:对double free的检查和对chunk对齐的检查。前者的分析见TcacheBin存取chunk。这里对chunk对齐的机制进行溯源。
chunk对齐检查机制
post @ 2024-02-14
TcacheBin
tcache全称 thread local caching,TcacheBin是从glibc2.26才开始加入的缓存机制,访问速度比fastbin更快,优先级更高,相对的检查机制也比较弱,容易攻击。