Need help with ctf?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fangdada
155 Stars 16 Forks 345 Commits 0 Opened issues

Description

持续更新,CTF题目收集+如何入门CTF

Services available

!
?

Need anything else?

Contributors list

# 442,968
C++
C
Shell
333 commits

How2pwn

Author: Wenhuo

- github仅作为仓库使用,个人新博客已迁移至:https://fandazh.cn 。老域名已关闭网站,CTF系列可能不会再更新了,现在主要更新how2CVE。

    我个人做过的CTF的bin题收集,有逆向和pwn两个方向。最近主要研究pwn,初学pwn的人建议移步先看看我写的malloc原理解析,我博客里也有而且博客里至少比github好看2333,下面的题目重复的话说明都涉及了,而且题目放上去的不按难度顺序,所以自行看看难度做吧,题目目录下有个文件夹how2pwn,这里面都是讲解要做出这道题目的前置知识以及相应的demo实现,也就是推荐新手先看的(不是全都有,只有最近复现的题目有,嘻嘻),这样学起来应该比现在清晰一些。那么导航就放在下面了:

ret2dlresolve

目前栈题比起以前少很多了,ret2dlresolve基本可以说是栈题的巅峰了,这一技巧虽然刚开始理解起来难一些,但是一次掌握之后再做就很简单了;

fastbin

同一组大小的fastbin被free后由fd指针指向前一个freed的chunk,伪造fastbin要注意绕过size check,e.g. 0x70大小的堆块,伪造的size要在0x70-0x7f的区间里。

largebin

largebin attach相比smallbin多拥有fdnextsize和bknextsize,并且largebin可以用mallocconsolidate吞并fastbin块,利用mallocconsolidate经常可以在只能申请fastbin的情况下生成smallbin来leak地址libc_base。

tcache

最近tcache机制的pwn题越来越多,因此必须得明白tcache机制与往常glibc2.23等版本的不同处,tcache的安全检查特别少,因此这类题的难点通常就在如何leak出libc基址以及如何创建重叠堆块。

unsafe unlink

对刚学堆利用的bin手来说这通常是第一课,目前只放这一题,后续还有largebin下的unlink实现

IOFILE

首先请移步至对_IO_FILE的详细分析文章,PWN中攻击_IO_FILE的题通常都是综合unsortedbin attack修改_IO_list_all,利用其_chain指向可控地址进而篡改vtable来劫持流程的,或者攻击_IO_FILE结构的成员以扩大输出范围达到内存泄漏的目的。

how2kernel

点这里跳转


How2reverse

    终于终于,我终于更新how2reverse了23333,鸽了好久,前一阵子太忙,然后又学习Linux kernel和angr框架,后来出了莫名其妙的问题后卡住了,没事做就来更新下这个。好了废话说完了,来看看how2reverse主要讲什么:

动态调试

我始终认为动态调试是一个逆向分析师必须要熟练掌握的技巧,无论是CTF题还是真实对抗环境,都要能利用动态调试见招拆招找到自己想要的。建议工具:IDA远程调试,GDB+插件(例如peda,pwndbg皆可)。

Z3-Solver

利用符号变量约束器求解唯一解在CTF中也是一种解法,到如今这成为了CTFer必须掌握的一个技巧。与爆破类似,必须知道程序的逻辑,例如加密算法,之后利用python的z3模块编写脚本约束求解。

静态分析

只需要静态分析的题常常花样特别多,除去偶尔的逆向pyc和mips或是直接一个log文件,爆破题和加密题常是静态分析题,我个人喜欢配合GDB验证自己还原的算法是否出错。

爆破

爆破常用与一些加密题,例如爆破hash算法。这一类题通常需要还原算法,若爆破时间过长应注意一下是否是自己的脚本问题或是解题思路。

脱壳

壳分为压缩壳与加密壳,在Windows下加密壳比Linux下的加密壳多,但CTF中大多都是压缩壳,无论是使用脱壳机还是手动脱壳都十分简单,在这里我都用手动的方式脱壳。

待续

…...

  • ...


How2CVE

  趁着有空闲时间,在这里做一下CVE的复现,路线就从栈到堆最后到内核吧,如果有POC的文件格式是公开的话可能还会尝试用fuzzer再复现一遍。好接下来就一步一步慢慢来:

栈溢出漏洞主要在信息安全早期横行,但在现在已经很少能看到新鲜的栈溢出漏洞了,但这不妨碍栈溢出成为学习漏洞利用的第一课。

  • ...

内核

  • ...

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.