文件
websafe-kb/06-case-studies/fujian-gov-procurement/reports/deep_penetration_test_report.md
hao cda31e86c7 初始化: Web安全攻防知识库
- 靶场环境: DVWA/WebGoat/Pikachu/BWAPP/SQLi-Labs/XSS-Labs
- SQL注入工具: sqli-scanner.py, blind-sqli.py, sqli-exploit.go
- XSS工具: xss-fuzzer.py, xss-scanner.go
- 认证攻击: web-brute.py, jwt-cracker.py
- 服务端安全: port-scanner.py, tls-scanner.py
- 防御配置: nginx-hardening.conf
- 案例研究: 福建政采网安全评估报告 (13份)
- 同步脚本: sync-gitea.sh
2026-03-16 17:10:23 -07:00

7.0 KiB
原始文件 Blame 文件历史

深度渗透测试报告

测试时间2026-03-10 测试目标zfcg.czt.fujian.gov.cn 及关联 IP 节点


一、SQL 注入探测

测试对象

POST /gateway/gp-auth-center/rest/v2/login/account

测试 Payload

# Payload 预期响应 实际响应
1 username: admin'-- 报错或异常 空响应(静默丢弃)
2 username: admin" OR 1=1-- 返回数据 空响应
3 username: 1 UNION SELECT 1,2,3-- 报错 空响应

分析

  • 登录接口对畸形请求不返回任何内容,表明前置 WAF 或网关层对包含 SQL 注入特征的请求进行了静默拦截DROP
  • 风险等级🟢 低(当前有效防护),但建议后端同步实施参数化查询 + 输入校验。

二、JWT Token 结构分析

发现

  • Token 类型为标准 JWTaccess_token),通过 OAuth 2.0 Authorization Code Flow 签发。
  • Token 存储位置Cookie + localStorage参见前端报告 F-01
  • JWT 签名算法待确认——需要实际登录态下的 Token 样本才能完成解码分析。

风险

  • 如果使用 HS256 弱密钥签名,攻击者可暴力猜解密钥并伪造任意身份 Token。

三、Spring Boot Actuator 暴露

测试结果

端点路径 HTTP 状态码 保护级别
/gateway/actuator 401 Nginx Basic Auth
/gateway/actuator/health 401 Nginx Basic Auth
/gateway/actuator/info 401 Nginx Basic Auth
/gateway/actuator/beans 401 Nginx Basic Auth
/gateway/actuator/mappings 401 Nginx Basic Auth
/gateway/actuator/env 403 额外封锁

分析

  • Actuator 端点已确认部署并可从公网触达。当前通过 Nginx Basic Auth 做了基础认证保护401
  • /actuator/env 单独被 403 封禁,说明运维团队知道此端点会泄露数据库密码等敏感配置,但只封了这一个。
  • 风险等级🟡 中危 — 如果 Basic Auth 使用弱密码(如 admin:admin),攻击者可直接读取 /actuator/mappings 获取全部 API 路由映射,/actuator/beans 获取所有 Spring Bean,/actuator/health 获取中间件连接状态。
  • 建议:将所有 Actuator 端点从公网完全移除,仅通过内网或 VPN 访问。

四、🔴 Nacos 服务注册中心 8848 端口对外暴露

Caution

这是本次评估中发现的最严重隐患之一

端口探测结果

IP 端口 TCP 状态 HTTP 响应
112.54.45.252 8848 OPEN 空(无 HTTP 应答或内层白名单)
120.35.30.176 8848 OPEN
114.115.172.176 8848 OPEN

分析

  • Nacos 是微服务架构的核心中枢组件,存储了所有微服务的注册地址、配置文件含数据库密码、Redis 密码、密钥等)。
  • 虽然当前 HTTP 请求返回空(可能 Nacos 仅监听内网网卡或有 IP 白名单),但 TCP 端口已对外开放,意味着:
    1. 攻击者可以从特定网络位置(如同运营商内网)尝试连接。
    2. 如果后续配置变更导致 Nacos 监听 0.0.0.0,将立即暴露所有微服务配置。
    3. 即使 HTTP 不响应,Nacos 的 gRPC 端口(通常 8848+1000=9848也可能可以利用。
  • 建议立即在防火墙/安全组封禁 8848、9848、9849 端口的公网访问。

五、其他暴露端口的衍生服务

非标端口扫描结果

IP 端口 HTTP 状态 说明
120.35.30.176 9090 502 Bad Gateway 反向代理后端服务异常,暴露了内部代理架构
114.115.172.176 8090 400 Bad Request HTTP 服务存在但拒绝无效请求

风险

  • 502 响应确认了 9090 端口背后有一个反向代理服务,只是当前后端不可达。一旦后端恢复,对应服务将直接对公网暴露。
  • 建议:立即封禁非标端口 9090、8090 的公网访问。

六、OAuth 流程安全测试

6.1 开放重定向测试

  • 测试伪造 authorization_code_callback 时,服务端返回 500 Internal Server Error
  • 分析:服务端对无效授权码抛出了异常而非静默忽略。虽然未成功重定向到恶意地址,但 500 错误表明错误处理不够优雅。

6.2 CORS 跨域配置

  • 使用 Origin: https://evil.com 探测:
    • 网关未回显 Access-Control-Allow-Origin: evil.com 安全)。
    • 但存在 Access-Control-Allow-Headers: *🟡 过宽)。
  • 风险等级🟡 中危 — Headers 通配符允许自定义请求头,可能被利用绕过部分 CSRF 防护。

七、登录接口暴力破解防护测试

测试方法

连续发送 5 次使用不同用户名和错误密码的登录请求。

结果

尝试次数 HTTP 状态码 是否被阻断
1 302
2 302
3 302
4 302
5 302

分析

  • 5 次快速连续请求均返回 302重定向到 OAuth 流程),无任何限速或锁定机制生效
  • 风险等级🔴 高危 — 攻击者可无限制发起密码喷洒或暴力破解攻击。
  • 建议:实施 IP 级别限速(如 5 次/分钟)+ 账户级别锁定(如 5 次失败后锁定 30 分钟)。

八、信息泄露深度探测

敏感文件扫描

对主站执行了 25+ 个常见敏感路径探测(.env, .git/config, backup.sql, WEB-INF/web.xml 等),均返回 404 或 403。

  • 结论 无直接敏感文件泄露。

Swagger API 文档

  • /gateway/swagger-resources 返回 403已封锁
  • 结论:已做封禁处理。

九、深度渗透风险总结矩阵

编号 风险项 严重程度 状态
P-01 Nacos 8848 端口对公网开放 🔴 紧急 TCP OPEN
P-02 登录接口无暴力破解防护 🔴 高危 已验证
P-03 Actuator 端点可公网触达 🟡 中危 401 Basic Auth
P-04 非标端口 9090/8090 暴露 🟡 中危 502/400
P-05 CORS Headers 通配符 🟡 中危 已确认
P-06 OAuth 错误处理非优雅降级 🟡 中危 500 错误
P-07 SQL 注入WAF 防护中) 🟢 低危 静默拦截
P-08 敏感文件直接泄露 🟢 低危 未发现

十、紧急修复建议

立即执行(今日内)

  1. 封禁 Nacos 端口:防火墙/安全组立刻对 8848, 9848, 9849 端口的公网入站规则设为 DENY。
  2. 封禁非标端口8080, 9090, 8090 等开发/管理端口对公网 DENY。
  3. 实施登录限速API 网关层配置请求速率限制(如 OpenResty limit_req)。

🔧 一周内修复

  1. 将 Actuator 端点移至内网专用端口,从公网入口完全摘除。
  2. 配置 CORS Access-Control-Allow-Headers 精确白名单。
  3. OAuth callback 增加 state 参数的 CSRF 防验证。