文章总结: 本文详细分析了静态网站存在的20多个安全漏洞,涵盖侦查与信息披露、基础设施配置、HTTP标头安全、客户端JavaScript安全等关键领域。文章提供了具体的测试方法和可操作建议,包括目录扫描、云存储配置检查、安全标头验证、XSS检测等技术要点,为安全测试人员提供了实用的静态网站安全评估指南。 综合评分: 78 文章分类: 漏洞分析,WEB安全,渗透测试,安全工具,技术标准
静态网站中存在的 20 多个漏洞
原创
Iuochen Iuochen
网络安全杂记
2026年4月23日 14:54 河北
在小说阅读器读本章
去阅读
0x00 引言
如果你从事过应用程序安全和漏洞赏金工作,那么你一定遇到过这种情况 →静态网站。
值得测试,但要发现什么呢?
什么是静态网站?嗯,对于非技术人员来说……
一个没有数据库、没有后端、没有API、没有登录表单, 甚至连个能用来做点什么的按钮都没有的Web应用程序!!!
但我们仍然有一些事情需要关注。
0x01 侦查与信息披露
此阶段的重点是收集情报,并识别无意中泄露的资产或敏感数据。
- 目录和文件扫描:运行工具(如 Gobuster 或 Dirsearch)来识别暴露的配置和隐藏的文件。
- 检查以下内容:
/robots.txt /sitemap.xml /security.txt .env .git/ .DS_Store (macOS) .vscode/.idea/ (IntelliJ).
- 例如:访问
example.com/.git/config可能会泄露存储库 URL。
2. 目录列表:检查 Web 服务器是否允许列出没有索引文件的目录中的文件内容。
- 目标路径:
/assets/,,,等等/uploads/。/js/``/images/
3. 源代码分析:手动检查View Source和编写脚本文件。
- 开发者评论:查找“”或被注释掉的凭据。
- 调试信息:检查 HTML 中是否遗留了变量转储或堆栈跟踪信息。
- 硬编码密钥:检查 JavaScript 文件中是否存在 API 密钥、令牌(AWS、Stripe)或硬编码凭证。
- 隐藏的 URL:在 JS 文件中查找对 staging (
staging.api.com) 或 test URL ( ) 的引用。test.example.com
4. 元数据提取:
- 文件:分析图像或 PDF 元数据中的 Exif 数据,以获取用户名、操作系统版本或内部系统路径。
- 页面:检查
<meta>标签,查看是否存在泄露的电子邮件、云存储链接或软件版本。 - 技术栈:识别“使用…构建”签名(例如,Gatsby、Next.js),这些签名可能会揭示特定的框架漏洞。
- 分析:提取 Google Analytics 或 Facebook Pixel ID,以反向搜索同一实体拥有的其他域名。
5. 开源情报 (OSINT):
-
Google Dorking:
site:example.com inurl:admin或site:example.com filetype:json。 -
Archive.org:请查看 Wayback Machine,了解该网站的旧版本,其中可能包含现已隐藏的敏感数据。
0x02 基础设施、云和部署
重点关注托管环境、云配置和部署工件。
- 云存储配置错误:
- S3 存储桶:检查底层 S3 存储桶是否为公开的(
s3.amazonaws.com/<bucket-name>)。 - CloudFront:如果配置错误,则尝试直接列出分发内容。
2. 部署和配置文件:
- 平台配置:查找公开的
.toml(Netlify)或vercel.json文件。 - 静态配置:检查 JSON 文件(例如
config.json,manifest.json),以获取 S3 存储桶名称或 CloudFront ID。
3. 备份和旧文件:
- 版本控制备份:扫描
.bak,.old,.zip,.rar文件。 - 编辑器备份:确保
index.html~(index_bak.html由 Vim 或 Nano 等编辑器创建的)备份文件无法访问。
4. 环境隔离:
- 确认暂存环境或测试环境(
staging.example.com)不被公开访问或索引。
5. 缓存:
- 检查
Cache-Control标头,确保敏感数据没有被公开缓存(例如,Cache-Control: public在个人资料页面上)。
0x03 HTTP标头和传输安全
验证服务器在数据传输过程中是否执行安全策略。
- 加密(HTTPS):
- 强制执行:验证 HTTP 重定向是否自动到 HTTPS。
- HSTS:检查标
Strict-Transport-Security头。
2. 安全标头:
- 点击劫持保护:确保
X-Frame-Options已设置(例如,DENY或SAMEORIGIN)。
3. MIME 类型嗅探:检查X-Content-Type-Options: nosniff.
- 内容安全策略(CSP):验证
Content-Security-Policy是否存在强大的策略来缓解 XSS 和注入攻击。 - MIME 类型:验证服务器是否设置了正确的 MIME 类型(例如,确保可执行内容不作为 .mime 提供
text/plain,或确保 JS 不作为 .mime 提供text/html)。
4. Cookie 安全性:
- 标志:确保设置了
Secure(仅限 HTTPS)和HttpOnly(无法通过 JS 访问)标志。 - 作用域:检查是否严格定义(如果不需要,
Cookie: Path不要仅仅设置为根)。/
0x04 客户端和 JavaScript 安全性
专注于用户浏览器中执行的逻辑。
- 易受攻击的库:
npm audit使用诸如、Retire.js或 Burp DOM Invader之类的工具识别具有已知 CVE 的过时 JS 库。
2. 跨站脚本攻击(XSS):
- 不受信任的输入:检查 URL 参数、哈希片段或查询字符串是否作为代码执行。
- 基于 DOM:测试搜索栏或反馈表单,其中输入内容会直接反映在 DOM 中,而无需进行清理。
- 内联处理程序:分析
onload、、onclick或onerror事件是否存在不安全的字符串连接漏洞。
3. 脚本完整性:
- 第三方脚本:审查从未知域加载的脚本。
- CSP 合规性:检查内联脚本中是否存在CSP 中没有对应的
nonce或。hash
0x05 访问控制和浏览器隔离
确保资源仅限授权用户和上下文访问。
- CORS(跨域资源共享):
- 通配符:检查是否安全
Access-Control-Allow-Origin: *。 - 方法:验证 CORS 预检中是否存在危险方法(例如
PUT,DELETE已启用跨域)。
2. 隔离策略:Cross-Origin-Resource-Policy确保(CORP) 和(COEP)设置正确Cross-Origin-Embedder-Policy,以防止数据泄露(例如,Spectre/Meltdown 缓解措施)。
3. Service Workers:检查是否存在配置错误的 Service Workers,这些 Service Workers 可能会过度缓存敏感资源。
4. 绕过授权:
- 403 绕过:尝试直接访问受限页面(例如,通过强制浏览),看看是否可以绕过 403 禁止访问状态。
0x06 内容操控与逻辑
测试应用程序如何处理用户输入,以防止操纵用户界面或流程。
- 点击劫持:尝试在浏览器中加载网站,
<iframe>查看其是否能够正常渲染。如果X-Frame-Options浏览器缺少某些组件,攻击者可以添加不可见的图层来欺骗用户。
-
例子:
<iframe src="https://target.com"></iframe>
2. 开放重定向:检查诸如 <your-directions> ?redirect=、?next=``<your-password> 或 <your-password> 之类的参数?url=,看看它们是否可以将用户重定向到外部恶意网站。
-
例子:
https://example.com/login?next=http://evil.com
3. 内容注入:尝试注入查询字符串数据来操纵显示的内容(参数污染)。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全杂记 Iuochen Iuochen《静态网站中存在的 20 多个漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论