第十届上海市大学生网络交全大赛Web&数据安全全解(全网首发)
字数 2283 2025-09-01 11:25:54

第十届上海市大学生网络安全大赛Web&数据安全全解

Web安全部分

1. ezDecryption解题思路

  1. 前端分析

    • 在前端发现两个解密函数,分别处理两个长字符串
    • 在控制台运行解密函数得到"panshi"和"2oZ5"
    • 注意:直接拼接提交不正确
  2. 关键步骤

    • 检查JSON中的step字段
    • 跳过step1和step2,直接向step3发送请求

2. web_ezyaml解题思路

  1. 环境分析

    • JDK8环境
    • 核心路由:加了黑名单的YAML反序列化
  2. 利用链选择

    • 尝试PropertyPathFactoryBean利用链,通过JNDI执行命令
    • 测试发现远程环境不出网
  3. 绕过技巧

    • 通过多一次URL编码绕过标签黑名单
    • 参考文章:https://xz.aliyun.com/news/17830
  4. 不出网利用

    • 上传spring bean.xml文件
    • 通过file协议加载本地XML实现不出网利用
    • 构造payload成功执行命令

3. web-jaba_ez解题思路

  1. 功能分析

    • /job/add路由可添加计划任务
    • /job/run/{jobName}触发任务,调用任意方法
  2. 绕过黑白名单

    • invokeTarget参数中,)后的字符串会被丢弃
    • com.jabaez.FLAG藏在最后绕过检测
  3. 命令执行

    • 利用/upload路由上传恶意so文件
    • 通过System.load加载so文件获取shell

4. web-ez_py解题思路

  1. 路由发现

    • 扫描到/messages路由,状态码307
    • 提示需要application/jsonsession_id
  2. MCP服务利用

    • 使用Cherry Studio连接MCP服务
    • 通过API让AI读取服务器文件
  3. 路径穿越

    • 使用app/serv../er.py绕过路径限制
    • 获取ADMIN_TOKEN = "admin_token_12345"
  4. 命令执行

    • 注意避免使用深度求索API(会拦截命令)

数据安全部分

1. SQLi_Detection

检测规则

  1. 布尔注入:

    • 模式:' OR'AND
    • 示例:admin' OR '1'='1' --
    • 原理:通过OR/AND条件绕过身份验证
  2. 联合查询注入:

    • 模式:' UNION SELECT
    • 示例:' UNION SELECT username,password FROM users --
    • 原理:通过UNION联合查询获取额外数据
  3. 堆叠查询注入:

    • 模式:';后接危险语句
    • 示例:'; DROP TABLE users; --
    • 原理:通过分号执行多个SQL语句

任务:统计logs.txt中疑似SQL注入的行数,flag格式:flag{行数}

2. DB_Log

企业权限架构

  • HR部门:employee_info、salary_data、personal_info
  • Finance部门:financial_reports、budget_data、payment_records
  • IT部门:system_logs、server_data、network_config
  • Sales部门:customer_data、sales_records、product_info
  • 敏感字段:salary、ssn、phone、email、address

检测规则

  1. 跨部门数据访问违规
  2. 敏感字段访问违规
  3. 工作时间外操作异常(凌晨0-5点)
  4. 数据备份异常操作(非管理员执行BACKUP)

任务要求

  • 分析数据库操作日志,识别违规行为
  • 输出格式:规则编号-日志ID
  • 计算MD5值作为flag

3. AES_Custom_Padding

背景

  • 使用AES-128-CBC加密
  • 自定义填充方案:
    1. 在明文末尾添加0x80
    2. 使用0x00填充到16字节块长
    3. 如果明文是块长整数倍,追加完整填充块(0x80 + 0x00*15)

已知

  • Key(hex):0123456789ABCDEF0123456789ABCDEF
  • IV(hex):000102030405060708090A0B0C0D0E0F
  • 加密文件:cipher.bin(Base64编码)

任务:编写解密程序,去除自定义填充得到明文

4. ACL_Allow_Count

说明

  • 给定3条ACL规则和2000条流量日志
  • 规则格式:action、proto、src/dst、dport
  • 流量格式:匹配原则为自上而下first-match,无匹配则默认deny

任务:统计被允许(allow)的流量条数,flag格式:flag{allow流量条数}

5. JWT_Weak_Secret

任务要求

  1. 签名验证:
    • HS256算法:使用字典密码逐一验证
    • RS256算法:使用提供的公钥验证
  2. 权限检查:
    • admin=true
    • 或role ∈ {admin, superuser}
  3. 统计结果:
    • 统计同时满足签名验证通过和具有管理员权限的JWT令牌数量
    • flag格式:flag{a:b:c...}(令牌序号从小到大)

6. Brute_Force_Detection

模式定义

  • 同一源IP在10分钟内
  • 针对同一用户
  • 连续5次失败
  • 第5次失败后下一次尝试成功

任务

  • 给定按时间排序的auth.log
  • 输出出现过该模式的唯一源IP
  • flag格式:flag{ip1:ip2...}(IP顺序从小到大)
第十届上海市大学生网络安全大赛Web&数据安全全解 Web安全部分 1. ezDecryption解题思路 前端分析 : 在前端发现两个解密函数,分别处理两个长字符串 在控制台运行解密函数得到"panshi"和"2oZ5" 注意:直接拼接提交不正确 关键步骤 : 检查JSON中的step字段 跳过step1和step2,直接向step3发送请求 2. web_ ezyaml解题思路 环境分析 : JDK8环境 核心路由:加了黑名单的YAML反序列化 利用链选择 : 尝试PropertyPathFactoryBean利用链,通过JNDI执行命令 测试发现远程环境不出网 绕过技巧 : 通过多一次URL编码绕过标签黑名单 参考文章:https://xz.aliyun.com/news/17830 不出网利用 : 上传spring bean.xml文件 通过file协议加载本地XML实现不出网利用 构造payload成功执行命令 3. web-jaba_ ez解题思路 功能分析 : /job/add 路由可添加计划任务 /job/run/{jobName} 触发任务,调用任意方法 绕过黑白名单 : 在 invokeTarget 参数中, ) 后的字符串会被丢弃 将 com.jabaez.FLAG 藏在最后绕过检测 命令执行 : 利用 /upload 路由上传恶意so文件 通过 System.load 加载so文件获取shell 4. web-ez_ py解题思路 路由发现 : 扫描到 /messages 路由,状态码307 提示需要 application/json 和 session_id MCP服务利用 : 使用Cherry Studio连接MCP服务 通过API让AI读取服务器文件 路径穿越 : 使用 app/serv../er.py 绕过路径限制 获取 ADMIN_TOKEN = "admin_token_12345" 命令执行 : 注意避免使用深度求索API(会拦截命令) 数据安全部分 1. SQLi_ Detection 检测规则 : 布尔注入: 模式: ' OR 或 'AND 示例: admin' OR '1'='1' -- 原理:通过OR/AND条件绕过身份验证 联合查询注入: 模式: ' UNION SELECT 示例: ' UNION SELECT username,password FROM users -- 原理:通过UNION联合查询获取额外数据 堆叠查询注入: 模式: '; 后接危险语句 示例: '; DROP TABLE users; -- 原理:通过分号执行多个SQL语句 任务 :统计logs.txt中疑似SQL注入的行数,flag格式:flag{行数} 2. DB_ Log 企业权限架构 : HR部门:employee_ info、salary_ data、personal_ info Finance部门:financial_ reports、budget_ data、payment_ records IT部门:system_ logs、server_ data、network_ config Sales部门:customer_ data、sales_ records、product_ info 敏感字段:salary、ssn、phone、email、address 检测规则 : 跨部门数据访问违规 敏感字段访问违规 工作时间外操作异常(凌晨0-5点) 数据备份异常操作(非管理员执行BACKUP) 任务要求 : 分析数据库操作日志,识别违规行为 输出格式:规则编号-日志ID 计算MD5值作为flag 3. AES_ Custom_ Padding 背景 : 使用AES-128-CBC加密 自定义填充方案: 在明文末尾添加0x80 使用0x00填充到16字节块长 如果明文是块长整数倍,追加完整填充块(0x80 + 0x00* 15) 已知 : Key(hex):0123456789ABCDEF0123456789ABCDEF IV(hex):000102030405060708090A0B0C0D0E0F 加密文件:cipher.bin(Base64编码) 任务 :编写解密程序,去除自定义填充得到明文 4. ACL_ Allow_ Count 说明 : 给定3条ACL规则和2000条流量日志 规则格式:action、proto、src/dst、dport 流量格式:匹配原则为自上而下first-match,无匹配则默认deny 任务 :统计被允许(allow)的流量条数,flag格式:flag{allow流量条数} 5. JWT_ Weak_ Secret 任务要求 : 签名验证: HS256算法:使用字典密码逐一验证 RS256算法:使用提供的公钥验证 权限检查: admin=true 或role ∈ {admin, superuser} 统计结果: 统计同时满足签名验证通过和具有管理员权限的JWT令牌数量 flag格式:flag{a:b:c...}(令牌序号从小到大) 6. Brute_ Force_ Detection 模式定义 : 同一源IP在10分钟内 针对同一用户 连续5次失败 第5次失败后下一次尝试成功 任务 : 给定按时间排序的auth.log 输出出现过该模式的唯一源IP flag格式:flag{ip1:ip2...}(IP顺序从小到大)