静态网站渗透测试流程与关键点
- 一、渗透测试流程
- 1. 信息收集
- 2. 前端安全测试
- 3. 服务器/托管环境测试
- 4. 供应链攻击面
- 5. 社会工程辅助测试
- 二、关键风险点与攻击场景
- 三、高效测试思路
- 四、修复建议
- 五、典型工具链
在渗透测试中,静态网站的测试流程与动态网站存在显著差异,因其缺乏后端交互逻辑(如数据库、API),但仍需关注以下关键点和风险场景。以下是系统化的流程与思路:
一、渗透测试流程
1. 信息收集
- 托管平台识别:确定是否使用GitHub Pages、S3、Cloudflare Pages等静态托管服务,检查平台配置错误(如公开S3存储桶权限)。
- 源码泄露检测:
- 扫描
.git
、.svn
等版本控制目录残留(工具:git-dumper
)。 - 查找备份文件(
.zip
、.bak
、_old
)、临时文件(.swp
)或开发配置文件(env
、config.js
)。
- 扫描
- 子域名枚举:通过
amass
、subfinder
结合证书透明度日志(如crt.sh)发现关联资产。 - 第三方依赖分析:检查引用的外部JS/CDN库(如jQuery、Bootstrap)版本,匹配已知CVE漏洞。
2. 前端安全测试
- 客户端敏感信息泄露:
- 硬编码API密钥、云服务凭证(AWS/Azure密钥)、OAuth令牌。
- 注释中隐藏的测试账号、内部IP或调试接口。
- JavaScript代码审计:
- 逻辑漏洞(如客户端输入验证绕过、本地存储敏感数据)。
- 不安全的
postMessage
通信、JSONP回调劫持。
- HTTP头安全策略:
- 缺失CSP(内容安全策略)导致XSS风险。
- 不安全的CORS配置(如
Access-Control-Allow-Origin: *
)。 - 缺少
X-Content-Type-Options
或X-Frame-Options
防护。
3. 服务器/托管环境测试
- 错误配置攻击:
- 目录遍历(如通过
/../
访问非公开文件)。 - 默认页暴露(如
/admin.html
未删除)。
- 目录遍历(如通过
- 存储桶权限滥用:
- 公有写入权限导致恶意文件上传(针对S3/GCS存储桶)。
- 列表权限泄露文件目录结构。
- HTTPS与证书问题:混合内容(HTTP资源加载)、过期或自签名证书。
4. 供应链攻击面
- 构建工具链风险:检查静态站点生成工具(如Hugo、Jekyll)的依赖漏洞。
- CI/CD管道泄露:
.github/workflows
目录中的敏感操作(如部署密钥硬编码)。
5. 社会工程辅助测试
- 钓鱼入口点:检查页面中暴露的客服邮箱、表单提交接口是否可能被滥用。
二、关键风险点与攻击场景
-
敏感文件泄露
- 场景:通过
/.git/config
获取仓库信息,进一步拉取源码发现硬编码密钥。 - 工具:
gitleaks
扫描源码中的敏感信息。
- 场景:通过
-
子域名接管
- 场景:过期子域名指向未注册的云服务(如Heroku、S3),攻击者注册后控制内容。
- 检测:使用
subjack
或HostileSubBruteforcer
扫描可接管域名。
-
第三方JS库漏洞
- 场景:老版本jQuery(如1.x)存在XSS漏洞(CVE-2020-11022/11023)。
- 检测:
retire.js
扫描前端依赖。
-
云存储桶配置错误
- 场景:S3存储桶策略允许
PutObject
,攻击者上传恶意HTML页面进行钓鱼。 - 工具:
s3scanner
、cloudsplaining
。
- 场景:S3存储桶策略允许
三、高效测试思路
- 逆向资源树:通过
wget -mk
镜像静态站点,离线分析链接与资源引用关系。 - 自动化与人工结合:
- 使用
nuclei
模板批量检测常见漏洞(如暴露目录、默认凭据)。 - 手动验证逻辑漏洞(如前端加密算法可逆、本地存储数据篡改)。
- 使用
- 隐蔽性测试:避免对托管平台(如GitHub Pages)发起高频扫描触发IP封禁。
四、修复建议
- 最小化暴露面
- 删除无关文件(版本控制目录、备份文件)。
- 使用
robots.txt
限制爬虫,但不可依赖其作为安全措施。
- 强化内容安全策略
- 配置严格的CSP头,禁用内联脚本(
unsafe-inline
)。
- 配置严格的CSP头,禁用内联脚本(
- 托管环境加固
- 启用存储桶日志审计,限制权限为最小化原则(如S3桶策略仅允许
GetObject
)。
- 启用存储桶日志审计,限制权限为最小化原则(如S3桶策略仅允许
- 依赖管理
- 使用
npm audit
或dependabot
监控第三方库更新。
- 使用
五、典型工具链
阶段 | 工具/命令 | 用途 |
---|---|---|
信息收集 | gowitness 、httpx | 截图与存证、快速HTTP探测 |
目录爆破 | ffuf -w wordlist.txt -u URL/FUZZ | 高效路径枚举 |
JS分析 | LinkFinder 、JS Miner | 提取API端点与敏感路径 |
云环境检测 | s3scanner 、cloud_enum | 公有云资产枚举 |
漏洞扫描 | nuclei -t cves/ | 基于模板的CVE检测 |
通过以上流程,即使静态网站也需覆盖开发、部署、供应链全链路风险,避免因“无后端”而忽视安全防护。