第一届“启航杯”网络安全挑战赛 web 全wp
字数 1285 2025-08-22 12:23:12
第一届“启航杯”网络安全挑战赛Web题目全解析
Easy_include题目解析
题目描述
简单文件包含漏洞利用题目
解题步骤
-
初始尝试:
- 尝试使用伪协议
input但没有效果 - 转而尝试
data伪协议成功
- 尝试使用伪协议
-
环境变量读取:
- 在GZ平台上,flag通常存在于环境变量中
- 尝试读取
/proc/self/environ文件
-
目录遍历:
- 根目录没有flag
- 尝试读取
/flag文件 - 尝试读取
/flag.php文件
关键知识点
- 文件包含漏洞利用
- PHP伪协议使用(data://)
- Linux环境变量读取方法
- 常见flag存放位置
Web_IP题目解析
题目描述
IP相关的Web题目
解题步骤
-
初始访问:
- 访问
/flag得到IP信息 - 访问
/hint没有返回内容
- 访问
-
漏洞利用:
- 识别为Smarty模板注入漏洞
- 通过模板注入获取flag
关键知识点
- Smarty模板引擎
- 模板注入漏洞原理
- 常见信息泄露路径
Web_pop题目解析
题目描述
PHP反序列化题目
解题步骤
- 源码分析:
- 目标是触发
__invoke魔术方法 - 构造特定的反序列化链
- 目标是触发
关键知识点
- PHP反序列化漏洞
- 魔术方法
__invoke的触发条件 - POP链构造技术
PCREMagic题目解析
题目描述
文件上传题目
解题步骤
-
文件上传:
- 先编写前端文件上传页面
- 绕过WAF防护(使用短标签
<?)
-
路径获取:
- 通过抓包获取上传文件路径
关键知识点
- 文件上传漏洞利用
- WAF绕过技术(PHP短标签)
- 请求拦截与路径发现
教学总结
文件包含漏洞
-
常用伪协议:
php://input- 访问原始POST数据data://- 数据流封装器phar://- PHP归档流
-
敏感文件路径:
/proc/self/environ- 环境变量/etc/passwd- 用户账户信息/flag,/flag.txt,/flag.php- 常见flag位置
模板注入
-
识别特征:
- 使用Smarty、Twig等模板引擎
- 用户输入直接嵌入模板
-
利用方法:
- 通过
{system('id')}执行命令 - 读取配置文件获取敏感信息
- 通过
反序列化漏洞
-
魔术方法:
__wakeup()- 反序列化时调用__destruct()- 对象销毁时调用__invoke()- 对象作为函数调用时触发
-
POP链构造:
- 分析类之间的调用关系
- 寻找从起点到危险方法的调用链
文件上传绕过
-
WAF绕过技巧:
- 修改Content-Type
- 使用短标签
<? - 添加垃圾数据干扰检测
- 双扩展名绕过(如
shell.php.jpg)
-
路径获取:
- 检查响应头Location字段
- 分析返回的HTML内容
- 目录爆破尝试
防御建议
-
文件包含:
- 禁用危险伪协议
- 白名单限制包含文件路径
-
模板注入:
- 严格过滤用户输入
- 使用安全的模板渲染方式
-
反序列化:
- 避免反序列化用户输入
- 使用签名验证序列化数据
-
文件上传:
- 限制上传文件类型
- 存储时重命名文件
- 禁用上传文件执行权限