bugbounty之政府网址一锅端
字数 1644 2025-08-18 17:33:13
政府网站渗透测试实战教学文档
1. 测试背景与目标
- 测试类型:黑盒Web渗透测试
- 目标范围:仅提供一个URL(redacted.gov.lol)
- 初始界面:仅包含验证码保护的登录页面,无注册/密码重置功能
2. 初始侦察阶段
2.1 登录页面分析
- 验证码在点击"登录"后弹出,无法绕过
- 缺乏用户名构造信息(字符类型、长度等),暴力破解不可行
2.2 目录扫描
- 使用常规字典扫描发现Tomcat目录
- 尝试访问
/html/manager/但受基本身份验证保护 - 使用Metasploit的
tomcat_mgr_login模块进行暴力破解未果
2.3 版本信息泄露
- 通过"Improper Error Handling"页面获取Tomcat版本
- 尝试利用该版本的已知CVE未成功
2.4 中间件识别
- 通过错误凭证登录响应cookie识别出F5 BigIP
- 尝试利用F5 BigIP的RCE漏洞和已知错误配置未果
3. 深入侦察与突破
3.1 扩大目录扫描
- 使用更大字典重新扫描,发现3个新HTML页面:
- 空白页
- 无限重定向循环页面
- 重复登录页面(但源代码行数更多)
3.2 源代码分析
- 在第三个页面发现额外JS文件
- JS文件中包含多个URL端点,但需要特定条件访问:
- 身份验证
- 特定请求方法
- 特定源URL
- 特定内容类型
3.3 硬编码凭证发现
- 一个JS文件包含指向HTML页面的链接
- 源代码中发现包含
User-Token参数的请求
4. 权限获取与提升
4.1 初始访问
- 将发现的
User-Token添加到之前收集的请求中 - 成功访问API端点(无GUI界面)
4.2 信息收集循环
- 发送带令牌的请求
- 从响应中收集JS文件
- 从JS文件中提取更多URL和参数
- 添加到请求列表并重复(约20次)
4.3 功能发现
- 发现一个添加菜单栏图标的HTML响应
- 完成整个流程后重定向到登录页面
- 添加
User-Token后访问到"命令执行"功能
4.4 命令执行突破
- 大多数命令被过滤
- 使用
tree命令(从JS文件中发现)成功执行- 获取整个网站URL结构及说明
5. 权限提升与重大发现
5.1 管理员控制台发现
- 发现"Admin Console" URL但访问被拒
- 通过个人资料页面确认当前为低权限用户
5.2 访问控制绕过
- 发现无需权限的"复制用户"功能页面
- 参数分析后可将现有用户复制为新用户
- 成功复制"Administrator"角色到新用户"GeneralEG"
5.3 管理员权限获取
- 使用新凭证登录获得UI访问权限
- 可访问"创建用户"等管理员功能
5.4 重大漏洞发现
- 可创建具有任意角色的用户
- 可关联到7000+政府网站(包括关键部门)
- 确认该系统为政府E-Systems链的头网站,用于其他网站用户管理
6. 额外漏洞发现
- 远程命令执行漏洞
- 后台SQL注入漏洞(可直接访问服务器)
7. 渗透测试方法论总结
- 不要过早放弃:多次尝试不同方法
- 全面侦察:不断扩大信息收集范围
- 记录一切:即使看似无用的信息也可能成为突破口
- 代码审计:仔细分析HTML/JS源代码中的线索
- 权限提升路径:从低权限用户逐步寻找提升方法
- 休息调整:遇到瓶颈时适当休息有助于新思路
- 信息循环:不断从新发现中提取更多信息
8. 技术要点总结
- 目录扫描:使用不同规模的字典多次尝试
- 源代码审计:关注行数差异、隐藏JS文件和硬编码凭证
- API端点枚举:通过合法流程发现隐藏功能
- 命令执行绕过:尝试非常规命令(如tree)
- 权限提升:寻找复制用户等非常规功能
- 访问控制测试:全面检查所有管理员功能
9. 防御建议
- 验证码实现:确保无法绕过
- 错误处理:避免泄露版本信息
- 源代码保护:避免硬编码凭证和敏感信息
- 权限控制:严格实施最小权限原则
- 功能审计:审查所有功能(包括看似无害的如"复制用户")
- 输入过滤:全面过滤命令执行功能
- API安全:实施严格的认证和授权机制