第十届上海市大学生网络交全大赛Web&数据安全全解(全网首发)
字数 2283 2025-09-01 11:25:54
第十届上海市大学生网络安全大赛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顺序从小到大)