各版本堆利用检查总结
前言 之前写题的时候,因为对各个版本的堆不是很熟悉,导致脑子里很乱,完全不知道能做什么。感到很棘手,现在决定重新复习一遍,同时又因为听好多师傅建议分版本总结学习,所以此处顺便总结一下。(其实我感觉写不出来最重要的原因是写的题太少)
正文 简单统计一下常见手法
简单统计
unlink
UAF
Fastbin Attack
Unsortbin Attack
Largebin Attack
Tcachebin Attack
Off-By-One
Off-By-Null
简单整理unlike chunk块从双链表中取出时,会修改前后相邻块的对应指针。BK->fd = FD
版本:早期
保护:无任何检查
版本:现在保护:size检查,双向链表检查
UAF Use After Free,内存块被释放后可以被再次使用,是许多手法的前提
版本:始终来自程序逻辑本身
Fastbin Attack 指所有基于fastbin机制的漏洞利用方法,但是此处仅说明针对Fastbin的相关检查和保护
size检查
版本:始终场景:申请内存块(malloc)
检查size是否与fas ...
栈迁移专项学习
写在前面的话 对栈迁移还是不熟悉,还得练,所以有了这篇文章,是复习,也是重新学习,由于有点懒,没太详细些,我认为重要的还是本篇文章拓宽了一下我对程序执行流程的思路,另外让我对漏洞利用的手法有了新的态度吧。另外,本篇文章主要还是学习国资师傅的文章的时候做的笔记。引用较多,且实例较少,我就调了一个程序,感觉差不多就没多写了。
栈迁移(stack pivote)又叫**伪造栈帧(fake frame)**,即利用leave,ret指令将bp,sp移动到自己想要的地方。最终目的还是控制ip从而控制程序流
普通栈迁移通过leave ret逐步将栈迁移到目标位置,使用场景
主函数不能返回(例如 : HITCON-Training LAB6)
ret2dlresolve 需要栈帧一般都非常长,这时候选择栈迁移能很好的省去一些不必要的麻烦。
只能溢出1个或者2个字长,这种题目就等于把:“请栈迁移”写在脸上。这种题目的特点是两次输入,也分为两种情况。
迁移到栈上,第1次输入是泄露地址,第2次是布置栈帧 + 迁移。
迁移到非栈上,1次输入是在非栈上布置栈帧,另1次迁移至非栈上,两次顺序可以互换 ...
Hexo 使用概述
记录了我的hexo的一些使用习惯,方便下次用的时候查询
ciscnwp 2024
ciscn参赛期间写的pwn方向writeup.
isccwp 2024
iscc-2024参赛期间写的pwn方向的wp