当前位置: 当前位置:首页 > 焦点 > ctf工具包正文

ctf工具包

作者:休闲 来源:焦点 浏览: 【大 中 小】 发布时间:2026-10-17 06:22:49 评论数:

去年打N1CTF,具包一道Web题卡了六个小时,具包最后发现是具包JWT密钥爆破——我连字典都没准备。旁边队友打开终端敲了行命令,具包三秒出结果。具包他用的具包工具我连名字都没听过。那场比赛之后我开始认真整理自己的具包工具包,才发现这玩意儿跟程序员修电脑一样,具包不是具包越贵越好,是具包越顺手越好。

CTF工具包不是具包把GitHub上star最多的项目全塞进一个文件夹。我见过有人装了Burp Suite、具包IDA Pro、具包Ghidra、具包pwntools、具包SQLMap、Nmap、Wireshark,结果比赛时连Python的requests库版本冲突都搞不定。工具越多,环境越乱。真正打比赛的人,工具包往往精简到十几样,甚至更少。

Web方向的核心其实就三样:Burp Suite、浏览器插件、一个顺手的脚本环境。Burp不用多说,但很多人忽略它的插件生态。我常驻的是Turbo Intruder和Logger++,前者跑并发爆破,后者做流量审计。浏览器插件我留了Wappalyzer和HackBar,前者看指纹,后者改请求。脚本环境我用的是Python虚拟环境加requests和BeautifulSoup,不装pwntools那套,Web用不上。

Pwn方向才是工具包的重灾区。pwntools是标配,但版本管理很头疼。我习惯用pipenv给每个比赛建独立环境,避免和系统Python打架。调试器我只用gdb加pwndbg,gef也装过,但pwndbg的堆可视化更直观。ROPgadget和one_gadget是必装的,前者找gadget,后者找libc里的magic address。还有patchelf,改ELF的interpreter和rpath,比手动打补丁快得多。

Reverse方向我分两条线。Windows平台用IDA Pro加HexRays,虽然贵但反编译质量没得说。Linux平台用Ghidra,免费且反编译效果不差。动态调试Windows用x64dbg,Linux用gdb加pwndbg。还有Detect It Easy,看壳和编译器信息,比PEiD更新更勤。最近开始用Binary Ninja,它的API比IDA友好,写脚本自动化分析省事。

Crypto和Misc我工具最少。Crypto用SageMath,跑格攻击和椭圆曲线。Misc用CyberChef,网页版够用,复杂编码链直接拖拽。Stegsolve看图片隐写,binwalk拆固件。这些工具都不大,但缺一个就卡壳。

工具包的管理比收集更重要。我见过有人把工具全放桌面,比赛时找不到版本。我的做法是按方向分目录,每个目录下放一个requirements.txt或install.sh。换电脑时git clone下来跑脚本,十分钟恢复环境。Docker也试过,但CTF比赛经常要临时改工具源码,容器里改完还要重新build,不如直接本地快。

还有一点,工具包要定期更新。pwntools的libc数据库、ROPgadget的gadget库、SecLists的字典,这些不更新等于白装。我每个月抽半小时跑一遍更新脚本,顺便清理不再用的工具。上个月删了angr,符号执行跑起来太慢,比赛时等不起。

最后说个真事。某次线下赛,隔壁桌的队伍带了台服务器,上面装了全套工具链,结果比赛开始半小时还没连上内网。我们这边每人一个U盘,里面是精简过的工具包,插上就能用。工具包这东西,稳定比丰富重要,顺手比强大重要。