渗透测试基础|信息收集——框架识别&框架漏洞利用
字数 1468 2025-08-29 08:29:36
渗透测试基础:框架识别与漏洞利用
前言
本文基于小迪安全2024年课程内容,系统介绍渗透测试中常见的Web框架识别方法和漏洞利用技术。主要内容包括Python、PHP、Java等主流框架的特征识别,以及如何利用这些框架进行渗透测试。
Web开发架构类型
-
纯手工开发模型:功能代码全部手写
- 优点:代码原创性高
- 缺点:未经安全检测,漏洞较多
-
开发框架模型:以框架为核心实现功能
- 经过第三方机构检测,安全性相对较高
-
框架+组件模型:以框架为核心,组件为辅实现功能
- 安全性最好,使用最广泛
Python框架识别
Django框架
- FOFA搜索语法:
app="django" && country="CN" - 识别方法:
- 使用Wappalyzer等插件识别
- 查看响应头中的特征字段
- 检查默认图标特征
Flask框架
- FOFA搜索语法:
app="Flask" && country="CN" - 识别特征:
- 响应头中
Set-Cookie: expires=Flask - 默认图标特征(icon_hash="1618312653")
- 响应头中
PHP框架识别
ThinkPHP
- FOFA搜索语法:
app="ThinkPHP" - 识别特征:
- 专属欢迎页面
- 插件可识别
Laravel
- FOFA搜索语法:
app="Laravel-Framework" - 识别特征:
- 特定欢迎页面
- 响应头特征
Java框架识别
Shiro框架
- FOFA搜索语法:
app="APACHE-Shiro" - 识别特征:
- Cookie中存在
rememberMe字段 - 响应包中存在
set-Cookie:remeberMe=deleteMe - 发送
rememberMe=x请求,观察响应
- Cookie中存在
Struts2框架
- FOFA搜索语法:
app="Struts2" && country="CN" - 识别特征:
- URL后缀通常带
.do或action - 特定错误页面
- URL后缀通常带
Spring Boot
- FOFA搜索语法:
app="Springboot" - 识别特征:
- 网页标签中的小绿叶图标
- 默认报错页面
- 特定响应头
Fastjson/Jackson组件
- 识别方法:
- Fastjson会把
01解析成1 - Jackson在解析
01时会抛出异常
- Fastjson会把
框架漏洞利用实战
Shiro反序列化漏洞(CVE-2016-4437)
-
环境搭建:
- 使用Vulhub靶场:
https://github.com/vulhub/vulhub - 启动命令:
docker-compose up -d(CVE-2016-4437环境) - 关闭命令:
docker-compose down -v
- 使用Vulhub靶场:
-
漏洞识别:
- 抓包观察
rememberMe字段 - 确认Shiro框架特征
- 抓包观察
-
漏洞利用步骤:
- 使用工具爆破密钥
- 检测可用利用链
- 执行命令注入
- 部署内存马(推荐使用哥斯拉)
-
工具箱推荐:
- 下载地址:
https://www.one-fox.cn/ - 配置关键参数:
- 目标URL
- 密钥
- 命令执行参数
- 下载地址:
总结
-
框架识别是渗透测试的重要前置步骤
-
识别方法包括:
- FOFA等搜索引擎语法
- 响应头特征分析
- 默认页面/图标识别
- 特定字段检测
-
工具和插件并非万能,需要结合手动识别
-
识别出框架后,可针对性地搜索相关漏洞和利用工具
-
实战中需灵活组合各种识别方法和利用技术