格式化字符是格式化字符串函数根据某一字符串参数的内容来进行解析,根据其值来处理解析的其他参数的个数和值的情形。换句话说,一个函数第一个参数作为格式化字符串,根据其来解析之后的参数的过程就是格式化字符串的过程。
格式化字符是格式化字符串函数根据某一字符串参数的内容来进行解析,根据其值来处理解析的其他参数的个数和值的情形。换句话说,一个函数第一个参数作为格式化字符串,根据其来解析之后的参数的过程就是格式化字符串的过程。
Tcache是2.26 libc中新引入的一种缓存的机制,由于它对每个线程增加一个bin缓存,这样能显著地提高性能.这样一个机制在提高效率的同时也带来了安全隐患.
off-by-one 漏洞是一种特殊的溢出漏洞,off-by-one 指程序向缓冲区中写入时,写入的字节数超过了这个缓冲区本身所申请的字节数并且只越界了一个字节的情况。我看 off-by-one的理论是字字都看得懂,但是一到off-by-one的实际利用时确是不知道怎么办了。于是找了Asis CTF 2016 b00ks这道经典off-by-one题来复现学习。
记着自己去年刚接触国外的ctf比赛入门时,第一个接触的国外ctf比赛就是ångstromCTF。但当时我web方向做了很多,但今年却一道题都没有做出来(虽然其他方向做了写)。但也应该反省下《关于年过后我发现一年前的我比现在NB这件事》了。
最近在学习堆时,常常遇到本地libc与题目libc不匹配导致一些骚套路无法在本地调试和利用.要想gdb,不仅得要安个符合版本的虚拟机或起一个docker还有部署一边pwn环境,这一点很烦(#`Д´).于是想找下有没有更方便的方法. 于是找到了patchelf更换libc的方法。
在glibc中,通过指定hook函数,可以修改malloc()
、readloc()
、free()
等函数的行为,从而帮助我们调试使用动态分配内存的程序。我们可以利用这一个特性通过篡改hook的值,使程序在调用动态分配内存相关函数前改变程序流,执行我们想执行的代码。
在学习pwn时,在接触到堆的知识点时明显感觉自己遇到了瓶颈了。面对各种bin、chunk、glibc感觉一脸蒙蔽,有的感觉不到如何将这些知识用到题目中来.感觉从how2heap学到知识和ctfwiki的知识及pwn爷爷们的python exp代码有的连不上.(tcl!)就这样迷茫了几个月,偶然间在拜读《CTF 竞赛权威指南 pwn篇》的fastbin二次释放时,突然有顿悟,故做个小笔记。(萌新写作欢迎pwn佬指点)