文件
websafe-kb/06-case-studies/fujian-gov-procurement/reports/full_guide_audit_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

15 KiB
原始文件 Blame 文件历史

Web 安全攻防全景指南20 章) × 福建政采网 逐项审计报告

评估时间2026-03-10 评估目标zfcg.czt.fujian.gov.cn 参照标准Web 安全与区块链安全攻防全景指南20 章 87 子节)


审计概览热力图

章节 审计项 发现数 最高风险 概要
Ch1 注入攻击 7 项 2 🟢 WAF 拦截有效
Ch2 客户端数据安全 5 项 5 🔴 紧急 Token/PII 明文存储
Ch3 跨域安全 5 项 3 🟡 CORS Headers 过宽
Ch4 HTTPS 传输安全 6 项 4 🔴 紧急 RC4-MD5 弱密码套件!
Ch5 认证与会话 5 项 4 🔴 高危 无暴破防护
Ch6 服务器端漏洞 4 项 1 🟢 路径遍历被拦截
Ch7 服务器配置 5 项 4 🔴 紧急 Nacos 8848 暴露
Ch8 开源依赖 3 项 2 🟡 jQuery CVE
Ch9 DDoS 4 项 1 🟡 无速率限制
Ch10 供应链 2 项 1 🟡 前端依赖未锁定
Ch11 容器/云原生 2 项 0 未直接发现
Ch12 密码学 3 项 2 🔴 高危 SM4 密钥明文暴露
Ch13 安全日志 2 项 1 🟡 错误日志存 localStorage
Ch14 隐私合规 3 项 2 🟡 PII 明文可提取
Ch15 移动端/PWA 3 项 0 非 PWA,无 Service Worker
Ch16 社会工程 2 项 2 🟡 无 SPF/DMARC 防骗
Ch17 区块链 不适用
Ch18 安全信息源 建议性条目
Ch19 SDLC 2 项 2 🟡 缺少威胁建模
Ch20 术语 参考性条目

Ch1. Web 端安全注入

1.1 SQL 注入 → 🟢 低危

Payload 结果 指南对照
admin'-- WAF 静默 DROP 有 WAF 防护 (1.1)
UNION SELECT 1,2,3-- WAF DROP
admin" OR 1=1-- WAF DROP

符合指南 1.1 「WAF 作为额外防御层」规范。后端是否使用参数化查询待确认。

1.2 XSS → 🟡 中危(理论风险高)

检查项 状态 指南条款
CSP 策略 未配置meta 和 header 均无) 违反 1.2 CSP 规范
HttpOnly Cookie access_token 可被 JS 读取 违反 1.2 HttpOnly 规范
安全模板引擎 Vue.js 默认转义 符合 1.2 规范
jQuery 1.12.4 CVE-2020-11022/11023 违反 1.2 + 8.1 规范

1.3 命令注入 → 未测试(无直接输入系统命令的可见入口)

1.4 SSRF → 未测试(需要认证态业务接口)

1.5 XXE → 🟢 低风险(系统使用 JSON,非 XML

1.6 SSTI → 未测试

1.7 LDAP 注入 → 未测试


Ch2. Web 客户端本地数据安全

属性 access_token tenantId isPwdSecurity 指南要求
HttpOnly 必须
Secure 未设置 未设置 未设置 必须
SameSite 未设置 未设置 未设置 必须 Strict/Lax
Domain/Path 未限制 未限制 应严格限制

严重违反 指南 2.1 全部 Cookie 安全属性规范。

2.2 Local Storage → 🔴 紧急

键名 内容 风险 指南条款
portal-access_token 完整 JWT 🔴 XSS → 冒充 严重违反 2.2「绝不存储敏感数据」
debug 调试标志 🟡 架构泄露 生产环境不应保留
loglevel 日志级别 🟡 同上

2.3 Session Storage → 🔴 紧急

键名 泄露内容 指南条款
ice-USER_DATA_INFO 手机号/邮箱/CA标识/userId 严重违反 2.2
gpx-menu 菜单权限配置 🟡 业务逻辑泄露

2.4 IndexedDB → 安全(未使用)

2.5 浏览器缓存 → 🟡 中危

  • 主页未设置 Cache-Control: no-store(允许缓存敏感页面)
  • 网关 API 有 Cache-Control: no-cache, no-store

Ch3. 跨域安全与同源策略

3.1 SOP → 基本合规

3.2 CORS → 🟡 中危

测试 结果 指南条款
Access-Control-Allow-Origin 反射 evil.com 未反射( 符合 3.2 白名单
Access-Control-Allow-Headers *(通配符) 违反 3.2「限制头部」

3.3 CSRF → 🟡 中危

  • 未发现 Anti-CSRF Token
  • SameSite Cookie 未设置
  • 指南要求至少实施 SameSite + CSRF Token 双重防护

3.4 点击劫持 → 🟡 不完整

页面 X-Frame-Options CSP frame-ancestors
主页 / 缺失 缺失
网关 API SAMEORIGIN 缺失

主页可被嵌入到任意 iframe 中,存在点击劫持风险。

3.5 跨域信息泄露 → 🟡 中危

发现 详情
JSONP 端点 /api/jsonp?callback=test 返回 {"code":10010002,"msg":"您还未登录"} — 泄露认证状态
WebSocket /ws 返回 nsssjss is null — 端点存在且返回内部错误信息

Ch4. HTTPS 与传输层安全

4.1 TLS 密码套件 → 🔴 紧急

Caution

这是本次审计发现的最严重加密安全隐患

项目 实际值 安全要求 状态
协商密码套件 RC4-MD5 AES-256-GCM 🔴 极危险
协议版本 TLS 1.2 TLS 1.2+ ⚠️ 但不支持 1.3
SSLv3 无法测试(客户端不支持) 必须禁用
TLS 1.0 已拒绝alert 70 必须禁用
TLS 1.1 已拒绝alert 70 必须禁用
TLS 1.3 被拒绝 应支持

RC4-MD5 风险说明

  • RC4 在 2015 年被 RFC 7465 正式禁止用于 TLS
  • MD5 哈希已被证明存在碰撞攻击
  • 此组合可能允许攻击者解密传输数据BEAST、POODLE 变种攻击)

4.2 证书信息

项目
颁发者 WoTrus DV Server CA (沃通)
信任链 USERTrust RSA CA → WoTrus DV → zfcg.czt.fujian.gov.cn
有效期 2025-04-17 至 2026-04-28
指纹 SHA256: 72:3E:D3:C6:B7:...

4.3 HTTP 安全头 → 🔴 主页严重缺失

安全头 主页 / 网关 API 指南要求
Strict-Transport-Security 必须
Content-Security-Policy 必须
X-Content-Type-Options nosniff 必须
X-Frame-Options SAMEORIGIN 必须
X-XSS-Protection 1; mode=block 已弃用,应为 0
Referrer-Policy no-referrer 推荐
Permissions-Policy 推荐

4.4 OAuth HTTP 降级 → 🔴 高危

OAuth 授权重定向使用 HTTP 而非 HTTPS违反指南 4.1 全站 HTTPS 要求):

Location: http://zfcg.czt.fujian.gov.cn/gp-auth-center/oauth/authorize?...

Ch5. 身份认证与会话安全

5.1 密码安全 → 🟡 中危

测试项 结果 指南条款
弱密码校验 已关闭 (isShowWeakPassword: false) 违反 5.1 密码策略
暴力破解防护 5 次连续无阻断 严重违反 5.1 速率限制
验证码强度 4 位静态图形码 违反 5.1 CAPTCHA 规范
账户锁定 未发现 违反 5.1 规范

5.2 MFA → 未实施

系统仅依赖密码 + 图形验证码,未提供任何 MFA 选项。违反指南 5.2 多因素认证要求。

5.3 会话管理 → 🟡 中危

  • Token 有效期约 7 小时(过长)
  • Token 过期验证正常
  • 会话固定防护:未测试(需在登录前后对比 session ID

5.4 JWT 安全 → 部分安全

攻击 结果 指南条款
alg: none 伪造 被正确拒绝 符合 5.4
RS256 算法 安全 符合 5.4
Token 存储位置 localStorage 违反 5.4「使用 HttpOnly Cookie」
Payload 信息过载 含 PII 违反最小化原则

5.5 OAuth 2.0 → 🔴 高危

检查项 状态
PKCE 未实施
state 参数 0,0,0,0,0,0(可预测)
redirect_uri 验证 通过 HTTP 重定向(🔴

Ch6. 服务器端安全漏洞

6.1 文件上传 → 未测试(需认证态)

6.2 反序列化 → 未测试

6.3 目录遍历 → 🟢 低(被拦截)

6.4 业务逻辑IDOR🟡

  • Token 中含 orgIdtenantId,可用于构造 IDOR 请求
  • userTypeNow 修改被检测到(刷新时触发"登录超时"

Ch7. 服务器配置与基础设施安全

7.1 Web 服务器加固 → 🟡 部分合规

配置项 状态 指南要求
server_tokens off 暴露 openresty 应隐藏
TLS 配置 RC4-MD5 应仅允许 AES-GCM
请求体限制 未测试 应限制

7.2 端口暴露 → 🔴 紧急

端口 服务 风险
8080 HTTP (404) 🟡
8848 Nacos (TCP OPEN) 🔴 紧急
9090 代理 (502) 🟡
8090 HTTP (400) 🟡

7.3 DNS 安全 → 🔴 高危

检查项 状态 指南条款
DNSSEC 未签名 违反 7.3 DNS 安全
CAA 记录 未设置 违反 证书管理规范
SPF 无 TXT 记录 违反 16.3 邮件防护
DMARC NXDOMAIN 严重违反 邮件安全
DKIM NXDOMAIN 严重违反 邮件安全

无 DMARC + 无 SPF = 攻击者可以完全伪造 @czt.fujian.gov.cn 的邮件


Ch8. 开源软件与依赖安全

组件 版本 CVE CVSS 指南条款
jQuery 1.12.4 CVE-2020-11022/11023 6.1 8.1 过时组件
CKEditor 未知 多个历史 XSS 8.1
sm2.min.js V3.0.0.574 未知 应关注

Ch9. DDoS 防护

  • 登录接口无速率限制 → 应用层 CC 攻击风险
  • 使用 OpenResty可通过 Lua 实现 limit_req
  • SYN 代理/负载均衡器存在(解释了端口扫描全 OPEN 现象)

Ch10. 供应链安全

  • 前端未发现 package-lock.json(依赖版本可能未锁定)
  • config.js 明文暴露 RSA 公钥和 SM4 密钥

Ch12. 密码学安全

项目 发现 风险
TLS 密码套件 RC4-MD5 🔴 已被 RFC 7465 禁止
SM4 密钥暴露 config.js 中明文 🔴 客户端加密可被破解
RSA 公钥暴露 config.js 中明文 🟡 公钥暴露本身风险有限
JWT 签名 RS256 安全

Ch13. 安全日志与监控

  • 错误日志写入 localStoragegpbe-expertweb-errLoggpcms-errLog
  • 可能泄露后端堆栈、接口路径、异常信息

Ch14. 隐私合规

检查项 状态 关联法规
PII 明文存储于浏览器 手机号/邮箱/CA标识 违反 PIPL 数据最小化
Cookie 同意横幅 未发现 不适用(政务网站)
隐私政策 未检查

Ch15. 移动端/PWA 安全

检查项 状态
Service Worker 未注册(无劫持风险)
Web Manifest 未使用(非 PWA
IndexedDB 未使用
Cache Storage 未使用
Permissions 全部为 prompt 状态

结论:不是 PWA 应用,Ch15 相关攻击面不存在。


Ch16. 社会工程学防护

检查项 状态 风险
SPF 未配置 可伪造政府邮件
DKIM 未配置 可伪造政府邮件
DMARC 未配置 🔴 可伪造 @czt.fujian.gov.cn 邮件
PII 泄露 → 社工 手机号/邮箱可被 XSS 提取 🔴 钓鱼攻击可行

全量风险评级矩阵

🔴 紧急 / Critical立即修复

# 漏洞 章节 CVSS估
C-01 TLS 使用 RC4-MD5 弱密码套件 Ch4/Ch12 7.5+
C-02 JWT Token 存储于 localStorage Ch2/Ch5 8.0
C-03 PII 明文存储于 sessionStorage Ch2/Ch14 7.5
C-04 Nacos 8848 端口对公网开放 Ch7 9.0
C-05 OAuth 重定向使用 HTTP Ch4/Ch5 8.0

🔴 高危 / High一周内修复

# 漏洞 章节 CVSS估
H-01 登录接口无暴力破解防护 Ch5/Ch9 7.5
H-02 主页缺失所有安全响应头 Ch4 6.5
H-03 无 DMARC/SPF/DKIM 邮件保护 Ch16/Ch7 7.0
H-04 Cookie 缺少 HttpOnly/Secure/SameSite Ch2 7.0
H-05 SM4/RSA 密钥在 config.js 暴露 Ch12 6.5
H-06 不支持 TLS 1.3 Ch4 5.5

🟡 中危 / Medium一月内修复

# 漏洞 章节
M-01 CORS Access-Control-Allow-Headers: * Ch3
M-02 缺少 Anti-CSRF Token Ch3
M-03 jQuery 1.12.4 CVE Ch8
M-04 Actuator 端点可公网触达 Ch7
M-05 非标端口 8080/9090/8090 暴露 Ch7
M-06 弱密码校验被关闭 Ch5
M-07 Token 有效期 7h 过长 Ch5
M-08 WebSocket /ws 端点暴露 Ch3
M-09 JSONP 端点泄露认证状态 Ch3
M-10 主页可被 iframe 嵌入(点击劫持) Ch3
M-11 错误日志存 localStorage Ch13
M-12 DNS 无 DNSSEC / CAA Ch7
M-13 OAuth state 参数可预测 Ch5
M-14 无 PKCE 保护 Ch5
M-15 调试信息debug/loglevel留存生产环境 Ch13

P0 紧急修复路线图

今日 ──────────────────────────────────────────
  │ 1. 🔒 TLS: 禁用 RC4/MD5,仅允许 AES-GCM + ChaCha20
  │ 2. 🔒 封禁 Nacos 8848/9848 端口公网访问
  │ 3. 🔒 OAuth 重定向强制 HTTPS
  │ 4. 🔒 Token 迁移至 HttpOnly + Secure + SameSite Cookie
  │
一周内 ────────────────────────────────────────
  │ 5. 清除 sessionStorage PII
  │ 6. 配置 HSTS + CSP + X-Frame-Options
  │ 7. 实施登录限速 + 账户锁定
  │ 8. 配置 SPF/DKIM/DMARC 邮件保护
  │ 9. 启用 TLS 1.3
  │
一月内 ────────────────────────────────────────
  │ 10. 升级 jQuery 至 3.7+
  │ 11. Actuator 移至内网
  │ 12. CORS 精确白名单
  │ 13. Token 有效期 → 30 分钟 + Refresh Token
  │ 14. 实施 OAuth PKCE + 随机 state
  │ 15. 移除生产环境调试信息
  │
三月内 ────────────────────────────────────────
  │ 16. CSP 精细化 + SRI
  │ 17. DNSSEC 签名
  │ 18. CAA DNS 记录
  │ 19. 安全日志集中化(移除 localStorage 日志)
  │ 20. 引入 WAF 规则白名单化