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 和程序的执行流程很有帮助
栈迁移
当可溢出的空间不足以让我们构造 ROP 时,可以考虑将栈迁移到别的地方去构造 payload 从而 getshell,或者利用 RBP 实现任意地址的读写,这就是栈迁移
沙箱绕过与ORW
沙箱技术是一种为执行中的程序提供隔离环境的安全机制,但与虚拟机有所区别,在沙箱环境下通常会限制一些系统调用,虽然 ORW 无法获取 shell,但可以实现任意地址读和任意地址写
栈溢出漏洞与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
cloudflare.uf4te.cn
uf4te.github.io
--- 本站APP下载 ---
Android | Windows
Mac | Linux
文件 MD5 校验
知乎热榜
诗文欣赏
文章归档文章标签文章分类随便逛逛
直达评论复制本文地址
昼夜切换本站协议赞助本站关于本站