某系统渗透测试
字数 1743 2025-08-22 12:22:54
事业单位系统渗透测试实战教学文档
前言
本教学文档基于某事业单位系统的渗透测试实战案例,该系统存在多个典型漏洞,适合新手学习。文档将详细分析每个漏洞的发现过程、利用方法及防御建议。
1. 弱口令漏洞
发现过程
- 在系统登录界面尝试常见账号密码组合
- 使用
test/123456成功登录系统
漏洞利用
- 尝试常见弱口令组合如:
- admin/admin
- admin/123456
- test/test
- root/root
- guest/guest
防御建议
- 实施强密码策略(至少8位,包含大小写字母、数字和特殊字符)
- 设置账户锁定机制(连续多次失败后锁定)
- 禁用默认账户或修改默认密码
- 实施多因素认证
2. 地图Key泄露
发现过程
- 登录后进入地图界面
- 查看网页源代码搜索"key"相关字符串
- 发现高德地图API Key明文存储
漏洞利用
- 获取的Key可用于:
- 超出配额使用导致服务中断
- 产生额外费用
- 伪造请求
防御建议
- 将API Key存储在服务器端
- 设置API Key的访问限制(IP白名单、HTTP Referrer限制)
- 定期轮换API Key
- 监控API Key使用情况
3. 目录浏览漏洞
发现过程
- 在网站中发现图片资源
- 右键图片选择"在新标签页打开"
- 观察URL结构(如
/images/123456.jpg) - 尝试删除文件名,直接访问目录路径(如
/images/)
漏洞利用
- 通过目录浏览可发现:
- 敏感配置文件
- 备份文件
- 未链接的资源文件
- 其他敏感信息
防御建议
- 在Web服务器配置中禁用目录列表
- Apache:
Options -Indexes - Nginx:
autoindex off
- Apache:
- 确保每个目录包含默认页面(如index.html)
- 定期扫描网站目录结构
4. 敏感信息泄露
发现过程
- 通过Burp Suite等工具拦截请求
- 发现返回包含用户敏感信息的API接口
- 信息包括:用户名、密码(明文或哈希)、手机号等
漏洞利用
- 收集泄露信息用于:
- 进一步渗透测试
- 社会工程学攻击
- 撞库攻击
防御建议
- 实施最小权限原则
- 对敏感数据进行加密存储
- 实施严格的访问控制
- 定期审计API接口
- 敏感信息返回前进行脱敏处理
5. 文件上传漏洞(存储型XSS)
发现过程
- 在头像上传功能处测试
- 前端限制上传文件类型(如仅图片)
- 使用Burp Suite拦截请求,修改文件后缀为.html
- 上传成功后访问该文件触发XSS
漏洞利用
- 绕过前端验证:
- 拦截上传请求
- 修改Content-Type为
text/html - 修改文件扩展名为.html
- 构造恶意HTML文件:
<script>alert(document.cookie)</script>
防御建议
- 实施服务器端文件类型验证
- 限制上传文件扩展名
- 对上传文件重命名(不使用用户提供的文件名)
- 设置文件上传目录无执行权限
- 使用内容检测机制(如病毒扫描)
6. Spring接口信息泄露
发现过程
- 访问常见Spring端点如:
- /actuator
- /env
- /heapdump
- /trace
- 发现敏感配置信息泄露
漏洞利用
- 获取的信息可能包括:
- 数据库凭证
- 加密密钥
- 内部服务地址
- 系统配置
防御建议
- 生产环境禁用Spring Actuator
- 或配置严格的访问控制
- 使用自定义管理端口
- 实施IP白名单限制
7. 接口遍历漏洞
发现过程
- 通过修改ID参数枚举用户(如/user/1, /user/2)
- 发现返回不同用户的敏感信息
- 或使用Burp Intruder进行自动化枚举
漏洞利用
- 编写简单脚本自动化收集信息:
import requests
for i in range(1,100):
response = requests.get(f'http://target.com/user/{i}')
if response.status_code == 200:
print(response.text)
防御建议
- 实施严格的访问控制
- 使用不可预测的标识符(如UUID而非自增ID)
- 对敏感操作实施速率限制
- 返回数据前进行权限检查
总结
本次渗透测试发现了目标系统的多个安全漏洞,从简单的弱口令到敏感信息泄露,展示了常见Web应用的安全问题。防御措施应遵循"纵深防御"原则,在每一层都实施适当的安全控制。
附录:渗透测试检查清单
-
认证机制测试
- 弱口令测试
- 账户锁定测试
- 密码策略检查
-
信息泄露测试
- 目录浏览
- 源码/配置泄露
- 错误信息泄露
-
输入验证测试
- XSS测试
- SQL注入测试
- 文件上传测试
-
接口安全测试
- 未授权访问
- 接口枚举
- 敏感数据暴露
-
第三方组件测试
- 已知漏洞检查
- 不必要服务检查
- 配置安全检查