N1CTF2025 WEB方向详细writeup(全)
字数 1303 2025-08-22 12:23:24

N1CTF2025 WEB方向漏洞利用技术详解

1. Gavatar 头像上传漏洞利用

1.1 漏洞分析

  • 系统处理上传的两种方式,其中URL上传方式存在安全风险
  • 虽然不能直接利用伪协议执行命令,但可以通过cnext技术进行攻击
  • 关键点在于获取回显信息

1.2 利用步骤

  1. 注册用户名为"123"的账户
  2. 上传图片后会跳转到/avatar.php?user=id
  3. 修改send方法获取回显
  4. 通过发包和访问1.php触发漏洞

1.3 技术要点

2. Traefik 中间件漏洞利用

2.1 漏洞分析

  • 题目利用traefik作为中间件
  • 路由配置问题:main.go有三个路由,但dynamic.yml只配置了两个
  • 需要X-Forwarded-For: "127.0.0.1"请求头才能访问flag

2.2 利用步骤

  1. 重写dynamic.yml文件
  2. 利用文件上传漏洞上传zip压缩包(系统会自动解压)
  3. 使用ZIP Slip技术覆盖配置文件
  4. 上传poc.zip后访问/flag获取flag

2.3 技术要点

  • 文件路径:C:\removeDisk\ideProject\PythonProject\CalcPin\dynamic.yml
  • 需要修改为dynamic.yml实际所在位置

3. Backup 命令执行漏洞

3.1 漏洞分析

  • 网页底部提示可通过POST传参执行命令
  • 参数:__2025.happy.new.year
  • 无任何过滤措施

3.2 利用步骤

  1. 发现根目录有backup.sh
  2. primary目录可写文件
  3. 写入webshell后使用蚁剑连接
  4. 利用通配符匹配特性执行命令

3.3 技术要点

  • cp命令特性利用:
  • 注意靶机使用-H参数而非-h
  • 参数顺序影响执行结果

4. EasyDB SQL注入漏洞

4.1 漏洞分析

  • 使用H2数据库
  • 存在SQL注入漏洞但有以下限制:
    • 使用executeQuery方法
    • 不能使用CREATE相关指令
    • 不支持堆叠注入
  • WAF过滤关键词

4.2 利用步骤

  1. 使用LINK_SCHEMA重新链接到H2
  2. 传入INIT的SQL语句
  3. 使用concat函数绕过黑名单
  4. 在登录框发包执行攻击

4.3 技术要点

  • 攻击脚本示例(1.sql):
-- 使用LINK_SCHEMA技术
-- 通过concat绕过过滤

5. Display CSP绕过技术

5.1 漏洞分析

  • CSP策略留有script-src为self
  • 代码审计发现path参数可控

5.2 利用步骤

  1. 控制path参数(以/开头)
  2. 补全为//注释并换行
  3. 构造插入script的payload
  4. 使用iframe + srcdoc加载

5.3 技术要点

  • 最终payload示例:
<!-- 注意编码问题 -->
<iframe srcdoc="..."></iframe>

总结

本次比赛涉及多种WEB安全技术:

  1. 文件上传漏洞利用
  2. 中间件配置错误利用
  3. 命令注入与参数滥用
  4. SQL注入与WAF绕过
  5. CSP策略绕过技术

每种技术都需要深入理解系统工作原理和特定配置,才能有效发现和利用漏洞。

N1CTF2025 WEB方向漏洞利用技术详解 1. Gavatar 头像上传漏洞利用 1.1 漏洞分析 系统处理上传的两种方式,其中URL上传方式存在安全风险 虽然不能直接利用伪协议执行命令,但可以通过cnext技术进行攻击 关键点在于获取回显信息 1.2 利用步骤 注册用户名为"123"的账户 上传图片后会跳转到 /avatar.php?user=id 修改send方法获取回显 通过发包和访问 1.php 触发漏洞 1.3 技术要点 需要关注回显点的位置 参考脚本:Gavatar_ exp.py 相关技术参考: cnext-exploit.py 相关博客文章 2. Traefik 中间件漏洞利用 2.1 漏洞分析 题目利用traefik作为中间件 路由配置问题:main.go有三个路由,但dynamic.yml只配置了两个 需要 X-Forwarded-For: "127.0.0.1" 请求头才能访问flag 2.2 利用步骤 重写dynamic.yml文件 利用文件上传漏洞上传zip压缩包(系统会自动解压) 使用ZIP Slip技术覆盖配置文件 参考: ZIP Slip任意文件上传与覆盖漏洞 上传poc.zip后访问/flag获取flag 2.3 技术要点 文件路径: C:\removeDisk\ideProject\PythonProject\CalcPin\dynamic.yml 需要修改为dynamic.yml实际所在位置 3. Backup 命令执行漏洞 3.1 漏洞分析 网页底部提示可通过POST传参执行命令 参数: __2025.happy.new.year 无任何过滤措施 3.2 利用步骤 发现根目录有backup.sh primary目录可写文件 写入webshell后使用蚁剑连接 利用通配符匹配特性执行命令 3.3 技术要点 cp命令特性利用: 参考: cp命令详解 注意靶机使用 -H 参数而非 -h 参数顺序影响执行结果 4. EasyDB SQL注入漏洞 4.1 漏洞分析 使用H2数据库 存在SQL注入漏洞但有以下限制: 使用executeQuery方法 不能使用CREATE相关指令 不支持堆叠注入 WAF过滤关键词 4.2 利用步骤 使用LINK_ SCHEMA重新链接到H2 传入INIT的SQL语句 使用concat函数绕过黑名单 在登录框发包执行攻击 4.3 技术要点 攻击脚本示例(1.sql): 5. Display CSP绕过技术 5.1 漏洞分析 CSP策略留有script-src为self 代码审计发现path参数可控 5.2 利用步骤 控制path参数(以/开头) 补全为//注释并换行 构造插入script的payload 使用iframe + srcdoc加载 5.3 技术要点 最终payload示例: 总结 本次比赛涉及多种WEB安全技术: 文件上传漏洞利用 中间件配置错误利用 命令注入与参数滥用 SQL注入与WAF绕过 CSP策略绕过技术 每种技术都需要深入理解系统工作原理和特定配置,才能有效发现和利用漏洞。