SMC代码自修改
SMC 自解码使程序中的一部分代码加密成了数据,在程序执行的过程中再用函数将数据解密成代码
【HDCTF 2023】KEEP ON
存在格式化字符串漏洞,考察的是栈迁移,payload 可写入的数据长度不够,但是也可以利用格式化字符串漏洞劫持 printf_got,使用 fmtstr_payload 替换 printf_got 为 system_plt
【GDOUCTF 2023】doublegame
2023 GDOUCTF 比赛的一道逆向题,是贪吃蛇和迷宫的结合,虽然不算难,但我觉得题目很有代表性,带点小坑,挺有意思的,记录一下
运行程序遇到 “由于找不到 xxx.dll,无法继续执行代码”
在打开 exe 程序时,弹出 “由于找不到 xxx.dll,无法继续执行代码” 致使程序无法运行的解决办法
【NISACTF】string
遇到生成随机数的代码还是在 Linux 下跑吧,Windows 下结果不对啊,长见识了
大端序和小端序
在逆向过程中,数据存放的大端序 or 小端序?
【楚慧杯 2023】Level_One
2023 楚慧杯初赛的一道 Mobile 安卓逆向,考察更换码表的 Base64
【攻防世界】BabyXor
攻防世界一道逆向,UNCTF2019 的一道题,主要考察 OllyDBG 手动脱壳,这里用到的是 ESP 脱壳定律,记录一下第一次手动调试脱壳的经历
【GDOUCTF 2023】L!S!
2023 GDOUCTF 比赛的一道逆向题,考察使用 BinDiff 插件查找两个程序的函数差异
堆相关漏洞与利用
主要介绍了堆的一些常见漏洞和利用方法
【plaidctf 2015】PlaidDB
这道题知识点较多,漏洞利用较复杂,利用 off-by-one 漏洞造成 Overlap 来泄露 libc 基地址,并通过 fast bin attack 错位伪造 chunk 劫持 __malloc_hook 为 one_gadget 来 getshell,要求对堆的分配机制较为熟练
Pwntools与exp技巧
想学好 PWN 就必须会用 Pwntools,对 Pwntools 进行了一些总结和归纳,以及编写 exp 所需要的信息搜集方法
堆基础
都说 PWN 的世界分为栈、堆和内核,这篇文章主要介绍了堆这种数据结构的相关概念,作为堆利用的前置基础
格式化字符串漏洞与利用
关于 PWN 中格式化字符串漏洞的一些总结
函数调用栈
简单记录一下函数在调用过程中栈的变化,对于理解 ROP 和程序的执行流程很有帮助
沙箱绕过与ORW
沙箱技术是一种为执行中的程序提供隔离环境的安全机制,但与虚拟机有所区别,在沙箱环境下通常会限制一些系统调用,虽然 ORW 无法获取 shell,但可以实现任意地址读和任意地址写
栈迁移
当可溢出的空间不足以让我们构造 ROP 时,可以考虑将栈迁移到别的地方去构造 payload 从而 getshell,或者利用 RBP 实现任意地址的读写,这就是栈迁移
栈溢出漏洞与ROP
关于 PWN 中栈溢出漏洞的一些总结,包括利用手段 ROP
PLT表和GOT表
Linux 下 PLT 表和 GOT 表的作用和关系
Linux下的保护机制
对 Linux 下文件保护机制的大致总结
【Asis CTF 2016】b00ks
很经典的一道堆题,利用 off-by-one 漏洞修改指向堆的指针,然后伪造堆块,后续关键在于获得 libc 基地址,可以分别通过 mmap 的特点和 unsorted bin 的特点来计算 libc 偏移,最后劫持 __free_hook 获取 shell
【BUUCTF】hitcontraining_uaf
可以说是堆中的 ret2text,作为堆的入门例题吧,利用 UAF 漏洞篡改被释放的堆块内容为后门函数地址
【BUUCTF】linkctf_2018.7_babypie1
通过栈溢出覆盖 canary 最后一字节 b'\x00' 利用 printf() 将 canary 的余下七字节输出,从而绕过 canary 保护,同时涉及到利用 partial write 进行 PIE 地址随机化的爆破
【BJDCTF 2nd】r2t4
程序存在 Canary 保护,只能使用一次格式化字符串漏洞,但没有开 PIE,溢出也只能刚好覆盖到返回地址,因此想绕过 Canary 构造 ROP 很困难,但可以劫持 __stack_chk_fail 的 GOT 表地址为后门函数的地址
【wustctf 2020】name_your_cat
题目比较简单,但是一种比较少见的 Canary Bypass 方法,通过数组下标越界绕过 Canary 直接修改栈上的返回值
【你想有多PWN】fmt_test2
一个格式化字符串漏洞的例题,包括泄露栈空间的数据、通过栈上的返回地址推算其它函数的真实地址、利用 libc 偏移计算 system 与 "/bin/sh",以及通过 fmtstr_payload 将 printf 的 GOT 表地址修改为 system_plt,需注意 32 位与 64 位的区别
【蓝桥杯 2024】fd
思路是常见的 ROP,但是限制了 system() 的参数,无法使用 "/bin/sh"、"sh"、"cat flag" 之类的操作,但可以通过 system("$0") 实现相同的效果,同时利用 exec 1>&2 重定向绕过 close(1)
【CISCN 2023】烧烤摊儿
第十六届 CISCN 国赛初赛的一道题,难度不算大,主要是利用 scanf 输入的溢出来 get shell,方法很多,赛后根据这道题总结了三种方法:ret2shellcode(mprotect 修改权限)、ORW、ret2syscall
【CISCN 2023】funcanary
第十六届 CISCN 国赛初赛的一道题,整个题都在爆破,主要涉及 fork() 函数的 canary 爆破,以及利用 partial write 对 PIE 的地址爆破
【ISCC 2023】三个愿望
2023 ISCC 的一道 PWN 题,主要考察利用格式化字符串漏洞来绕过金丝雀保护
欢迎来到我的小站
我是一个喜欢学习 PWN 和逆向的二进制 CTFer,加油,互勉!
计时小助手
最新公告
可以在《互动 -> 我的说说》下查看本站的更新及动态:我的说说
访客信息
网站线路
--- 主线路 ---
www.uf4te.cn | uf4te.cn
--- 备用线路 ---
blog.uf4te.cn
uf4te.github.io
--- 本站APP下载 ---
Android | Windows
Mac | Linux
文件 MD5 校验
知乎热榜
诗文欣赏
文章归档文章标签文章分类随便逛逛
直达评论复制本文地址
昼夜切换本站协议赞助本站关于本站