【攻防世界】cgpwn2
当程序中没有后门函数时,可以向段中写入 /bin/sh,然后跳转到 system 函数将 /bin/sh 作为参数执行
CNVD-2013-11625复现
这是第一篇 CVE 复现文章,关于 DIR-815 等路由器的栈溢出漏洞,需要用到 MIPS 架构的 ROP,收获不少,同时也解决了 winmt 大佬的 PoC 无法 getshell 的问题,很适合作为 CVE 复现入门
IoT固件仿真与gdbserver远程调试
主要涉及到如何对 IoT 固件进行仿真,如果我们没有真实的设备,可以使用 QEMU 或者 GNS3 对固件进行模拟,确保启动我们需要的服务,最后编译并使用 gdbserver 进行 IoT 设备的远程调试
多架构与交叉编译
主要介绍了 ARM、MIPS 等架构的相关基础,以及如何查看系统的架构、如何在 x86 的物理机上搭建 ARM 和 MIPS 等架构的交叉编译环境,这些也是作为 IoT 漏洞分析中的基础技能
AFL++环境搭建与模糊测试
涉及到 AFL++ 的环境搭建和一些基础的 Fuzz 操作,算作是使用 Fuzz 进行漏洞挖掘的入门吧,CTF 通常是单个程序因此不常使用 Fuzz,但是在现实的大项目中 Fuzz 是很好用的利器
IoT环境搭建与固件分析
主要涉及搭建和分析 IoT 固件的环境,这是分析和挖掘 IoT 漏洞的前置基础,同时举例说明了加密固件的几种场景及其处理方法,也包含了很多坑点的说明和解决
Ubuntu16.04虚拟机环境搭建
由于 Ubuntu 16.04 环境比较老,导致 2023 年 Ubuntu 22.04 下的许多 PWN 环境搭建并不适用于 16.04,所以出了一个专门针对 16.04 的环境配置教程,并对与 22.04 中不同的地方专门做了讲解和处理
Pwntools与exp技巧
想学好 PWN 就必须会用 Pwntools,对 Pwntools 进行了一些总结和归纳,以及编写 exp 所需要的信息搜集方法
PWN中Glibc引起的64位程序的堆栈平衡
在学习 PWN 的栈溢出漏洞 ROP 时遇到 ret2text 类题目,通过构造 payload 进行 system 调用将 "/bin/sh" 作为参数来获取 shell,32 位与 64 位除了传参方式不一样,有时 64 位还需要额外加上一个 ret 地址来 getshell,否则无法打通,这就是堆栈平衡引起的
PWN中Glibc导致的偏移地址问题
对于程序中没有 system 函数与 "/bin/sh" 的情况,我们通常需要使用到 libc,通过计算 libc 偏移来获取 system 函数与 "/bin/sh" 的地址,但是有时会发现同样的 exp 为什么无法 getshell?因为 libc 版本不一致,导致计算出来的偏移是错误的
PLT表和GOT表
Linux 下 PLT 表和 GOT 表的作用和关系
Linux下的保护机制
对 Linux 下文件保护机制的大致总结
Bypass安全机制
主要介绍里一些如何 Bypass 一些常见安全机制的方法,例如绕过 Canary、PIE 等等
栈溢出漏洞与ROP
关于 PWN 中栈溢出漏洞的一些总结,包括利用手段 ROP
函数调用栈
简单记录一下函数在调用过程中栈的变化,对于理解 ROP 和程序的执行流程很有帮助
栈迁移
当可溢出的空间不足以让我们构造 ROP 时,可以考虑将栈迁移到别的地方去构造 payload 从而 getshell,或者利用 RBP 实现任意地址的读写,这就是栈迁移
沙箱绕过与ORW
沙箱技术是一种为执行中的程序提供隔离环境的安全机制,但与虚拟机有所区别,在沙箱环境下通常会限制一些系统调用,虽然 ORW 无法获取 shell,但可以实现任意地址读和任意地址写
格式化字符串漏洞与利用
关于 PWN 中格式化字符串漏洞的一些总结
堆相关漏洞与利用
主要介绍了堆的一些常见漏洞和利用方法
堆基础
都说 PWN 的世界分为栈、堆和内核,这篇文章主要介绍了堆这种数据结构的相关概念,作为堆利用的前置基础
【Star Ctf 2018】babystack
通过修改 TLS 结构体中的 stack_guard 变量来控制 Canary,前提是溢出空间足够长并且存在子线程,但是这个题成功构造 system("/bin/sh") 却无法 getshell,必须使用 execve("/bin/sh", 0, 0)
【wustctf 2020】name_your_cat
题目比较简单,但是一种比较少见的 Canary Bypass 方法,通过数组下标越界绕过 Canary 直接修改栈上的返回值
【ISCC 2023】Login
2023 ISCC 的一道题,其实就是一个 ret2libc,但是有许多小细节需要注意:存在 libc 版本的问题,libc 版本会影响到偏移量的计算,如果本地是 glibc 2.27 以上(Ubuntu 18.04 以上),需要注意堆栈平衡,同时要结合动态调试来确定程序泄露的具体函数名
【plaidctf 2015】PlaidDB
这道题知识点较多,漏洞利用较复杂,利用 off-by-one 漏洞造成 Overlap 来泄露 libc 基地址,并通过 fast bin attack 错位伪造 chunk 劫持 __malloc_hook 为 one_gadget 来 getshell,要求对堆的分配机制较为熟练
【ISCC 2023】三个愿望
2023 ISCC 的一道 PWN 题,主要考察利用格式化字符串漏洞来绕过金丝雀保护
【HDCTF 2023】KEEP ON
存在格式化字符串漏洞,考察的是栈迁移,payload 可写入的数据长度不够,但是也可以利用格式化字符串漏洞劫持 printf_got,使用 fmtstr_payload 替换 printf_got 为 system_plt
【GDOUCTF 2023】Shellcode
2023 GDOUCTF 比赛中一道简单的 pwn 题,虽然是常规的 ret2shellcode,但是 pwntools 生成的 shellcode 超长确实没留意到,长个记性吧
【GDOUCTF 2023】EASY_PWN
2023 GDOUCTF 比赛中一道简单的栈溢出类 pwn 题,虽然前面看起来像是让猜生成的随机数,其实与 flag 的获取关系并不大,不要被迷惑了
【GDOUCTF 2023】Random
2023 GDOUCTF 比赛中的一道 Pwn 题,考点在于伪随机数绕过和 ORW 沙箱绕过,以及栈上空间不够写入时,使用 jmp rsp 劫持返回地址
【GDOUCTF 2023】真男人下120层
2023 GDOUCTF 比赛中的一道 Pwn 题,比较简单,主要是利用 ctypes 生成伪随机数,循环输入 120 次即可得到 flag
avatar
🎓毕业快乐!
uf4te
天道酬勤,保持热爱,奔赴山海
给我的网站一个star 🤗
欢迎来到我的小站
我是一个喜欢学习 PWN 和逆向的二进制 CTFer,加油,互勉!
计时小助手
最新公告
可以在《互动 -> 我的说说》下查看本站的更新及动态:我的说说
访客信息
网站线路
--- 主线路 ---
www.uf4te.cn | uf4te.cn
--- 备用线路 ---
blog.uf4te.cn
uf4te.github.io
--- 本站APP下载 ---
Android | Windows
Mac | Linux
文件 MD5 校验
知乎热榜
诗文欣赏
文章归档文章标签文章分类随便逛逛
直达评论复制本文地址
昼夜切换本站协议关于本站赞助本站