【CTFwiki】ROP栈溢出漏洞合集
CTFwiki 中的 ROP 题目合集,在《栈溢出漏洞与ROP》中总结的比较详细,这里只是简单实操一下,算是自己做一个入门的 hint 教程吧,在 CTF 题中几乎也经常遇到
【CISCN 2023】funcanary
第十六届 CISCN 国赛初赛的一道题,整个题都在爆破,主要涉及 fork() 函数的 canary 爆破,以及利用 partial write 对 PIE 的地址爆破
【CISCN 2023】烧烤摊儿
第十六届 CISCN 国赛初赛的一道题,难度不算大,主要是利用 scanf 输入的溢出来 get shell,方法很多,赛后根据这道题总结了三种方法:ret2shellcode(mprotect 修改权限)、ORW、ret2syscall
【BJDCTF 2nd】r2t4
程序存在 Canary 保护,只能使用一次格式化字符串漏洞,但没有开 PIE,溢出也只能刚好覆盖到返回地址,因此想绕过 Canary 构造 ROP 很困难,但可以劫持 __stack_chk_fail 的 GOT 表地址为后门函数的地址
【BUUCTF】linkctf_2018.7_babypie1
通过栈溢出覆盖 canary 最后一字节 b'\x00' 利用 printf() 将 canary 的余下七字节输出,从而绕过 canary 保护,同时涉及到利用 partial write 进行 PIE 地址随机化的爆破
【BUUCTF】hitcontraining_uaf
可以说是堆中的 ret2text,作为堆的入门例题吧,利用 UAF 漏洞篡改被释放的堆块内容为后门函数地址
【Asis CTF 2016】b00ks
很经典的一道堆题,利用 off-by-one 漏洞修改指向堆的指针,然后伪造堆块,后续关键在于获得 libc 基地址,可以分别通过 mmap 的特点和 unsorted bin 的特点来计算 libc 偏移,最后劫持 __free_hook 获取 shell
【你想有多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)
【华为杯 2023】ez_ssp
利用 SSP Leak 绕过 Canary,通过修改 __fortify_fail 函数中要输出的变量 __libc_argv[0] 的地址,故意触发 Canary 保护来实现任意地址读
【攻防世界】when_did_you_born
一个比较基础的 get 溢出漏洞,很适合入门学习 pwn 的流程,以及 IDA 中的栈结构
【攻防世界】string
一个格式化字符串漏洞,利用 %p 泄露栈中的数据,再用 printf 进行改写,mmap 函数可以将输入的数据作为函数执行,长见识了
【攻防世界】repeater
程序开启了 PIE,但是会输出 main 的真实地址,而 IDA 中给出的是偏移地址,进而推算出其他函数的地址,往段上写 shellcode 直接执行也不错
【攻防世界】level3
程序中没有 system 函数,但是给了一个 libc 文件,可以利用 libc 文件来确定基地址,进而根据偏移地址推算程序中的 system 地址
【攻防世界】level2
发现程序中有 /bin/sh,利用 PLT 表找到 system 函数的地址,然后给 system 函数构造参数来执行
【攻防世界】level0
经典的栈溢出,跳转到后门函数的位置,比较简单,熟悉了 system("/bin/sh") 的原理
【攻防世界】int_overflow
有时候程序输入无法直接溢出,但是可以利用 strcpy 间接进行溢出,同时注意参数的类型 __int8 和 int 还是不一样的
【攻防世界】CGfsb
比较经典的格式化字符串漏洞,修改段上的数据
【攻防世界】hello_pwn
比较基础的栈溢出漏洞,控制程序跳转到后门函数,适合入门和熟悉栈溢出漏洞的原理
【攻防世界】guess_num
按照程序中函数的逻辑,利用 python 编写对应的 C 语言函数来绕过程序的判断
花指令
做逆向时遇到的汇编代码中的花指令
二进制文件相似性
做逆向时遇到给出多个可执行文件,需要对比文件之间的差异性时,可以使用 Bindiff 进行操作
常见脱壳方法
列出了一些常见的脱壳方法,了解壳的原理和脱壳手段在逆向中非常重要
大端序和小端序
在逆向过程中,数据存放的大端序 or 小端序?
Android逆向与动态调试
总结一下安卓逆向中的一些知识点,包括如何静态分析安卓程序,以及如何使用 IDA 来动态调试安卓程序的 so 文件
IDA中加密算法特征与解密
根据函数的特点,快速识别 IDA 伪代码里的加密方法
JS逆向
刷题时遇到的继 Pyhton 逆向之后的又一种逆向形式 -- JS 逆向
Python逆向
解题时常遇到一种对 pyc 文件的逆向,针对这种题型的处理方法和流程
SMC代码自修改
SMC 自解码使程序中的一部分代码加密成了数据,在程序执行的过程中再用函数将数据解密成代码
从物理机拖到Linux虚拟机中的文件消失了?
有时候明明安装了 VMtools,却发现文件有时还是无法拖进 Linux 虚拟机,或者拖进虚拟机后文件却并没有出现在对应的文件夹里,不要慌,其实虚拟机没有问题,只需要简单操作一下
avatar
🎓毕业快乐!
uf4te
天道酬勤,保持热爱,奔赴山海
给我的网站一个star 🤗
欢迎来到我的小站
我是一个喜欢学习 PWN 和逆向的二进制 CTFer,加油,互勉!
计时小助手
最新公告
可以在《互动 -> 我的说说》下查看本站的更新及动态:我的说说
访客信息
网站线路
--- 主线路 ---
www.uf4te.cn | uf4te.cn
--- 备用线路 ---
blog.uf4te.cn
uf4te.github.io
--- 本站APP下载 ---
Android | Windows
Mac | Linux
文件 MD5 校验
知乎热榜
诗文欣赏
文章归档文章标签文章分类随便逛逛
直达评论复制本文地址
昼夜切换本站协议关于本站赞助本站