how2pwn

2019年5月8日 0 条评论 61 次阅读 0 人点赞

  初学pwn的建议先移步看看malloc原理解析四部曲。

  博客重建后,how2pwn和how2reverse的题目导航改回github了,顺便说明一下,下面这些题目如果有重复的话说明堆块知识都涉及了,而且题目放上去的不按难度顺序,所以自行看看难度做吧,题目目录下有个文件夹how2pwn,这里面都是讲解要做出这道题目的前置知识以及相应的demo实现,也就是新手基本都推荐先看的(不是全都有,只有最近的复现的题目有,嘻嘻),这样学起来应该比现在清晰一些。那么导航就放在下面了:

Fast bin

同一组大小的fastbin被free后由fd指针指向前一个freed的chunk,伪造fastbin要注意绕过size check,e.g. 0x70大小的堆块,伪造的size要在0x70-0x7f的区间里。



large bin

largebin attach相比smallbin多拥有fd_nextsize和bk_nextsize,并且largebin可以用malloc_consolidate吞并fastbin块,利用malloc_consolidate经常可以在只能申请fastbin的情况下生成smallbin来leak地址libc_base。



cache

最近tcache机制的pwn题越来越多,因此必须得明白tcache机制与往常glibc2.23等版本的不同处,tcache的安全检查特别少,因此这类题的难点通常就在如何leak出libc基址以及如何创建重叠堆块。



unsafe unlink

对刚学堆利用的bin手来说这通常是第一课,目前只放这一题,后续还有largebin下的unlink实现



_IO_FILE

首先请移步至对_IO_FILE的详细分析文章,PWN中攻击_IO_FILE的题通常都是综合unsortedbin attack修改_IO_list_all,利用其_chain指向可控地址进而篡改vtable来劫持流程的,或者攻击_IO_FILE结构的成员以扩大输出范围达到内存泄漏的目的。



how2kernel

点这里跳转

fanda

这个人太懒什么东西都没留下

文章评论(0)