初始化: 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
这个提交包含在:
hao
2026-03-16 17:10:23 -07:00
当前提交 cda31e86c7
修改 33 个文件,包含 6072 行新增0 行删除

查看文件

@@ -0,0 +1,170 @@
# 深度渗透测试报告
> **测试时间**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 类型为标准 JWT`access_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`)。
### 🔧 一周内修复
4. 将 Actuator 端点移至内网专用端口,从公网入口完全摘除。
5. 配置 CORS `Access-Control-Allow-Headers` 精确白名单。
6. OAuth callback 增加 `state` 参数的 CSRF 防验证。