静态网站中存在的20多个漏洞

admin 2026-04-24 05:50:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细分析了静态网站存在的20多个安全漏洞,涵盖侦查与信息披露、基础设施配置、HTTP标头安全、客户端JavaScript安全等关键领域。文章提供了具体的测试方法和可操作建议,包括目录扫描、云存储配置检查、安全标头验证、XSS检测等技术要点,为安全测试人员提供了实用的静态网站安全评估指南。 综合评分: 78 文章分类: 漏洞分析,WEB安全,渗透测试,安全工具,技术标准


cover_image

静态网站中存在的 20 多个漏洞

原创

Iuochen Iuochen

网络安全杂记

2026年4月23日 14:54 河北

在小说阅读器读本章

去阅读

0x00 引言

如果你从事过应用程序安全和漏洞赏金工作,那么你一定遇到过这种情况 →静态网站。

值得测试,但要发现什么呢?

什么是静态网站?嗯,对于非技术人员来说……

一个没有数据库、没有后端、没有API没有登录表单, 甚至连个能用来做点什么的按钮都没有的Web应用程序!!!

但我们仍然有一些事情需要关注。

0x01 侦查与信息披露

此阶段的重点是收集情报,并识别无意中泄露的资产或敏感数据。

  1. 目录和文件扫描:运行工具(如 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:adminsite:example.com filetype:json

  • Archive.org:请查看 Wayback Machine,了解该网站的旧版本,其中可能包含现已隐藏的敏感数据。

0x02 基础设施、云和部署

重点关注托管环境、云配置和部署工件。

  1. 云存储配置错误:
  • S3 存储桶:检查底层 S3 存储桶是否为公开的(s3.amazonaws.com/<bucket-name>)。
  • CloudFront:如果配置错误,则尝试直接列出分发内容。

2. 部署和配置文件:

  • 平台配置:查找公开的.toml(Netlify)或vercel.json文件。
  • 静态配置:检查 JSON 文件(例如config.jsonmanifest.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标头和传输安全

验证服务器在数据传输过程中是否执行安全策略。

  1. 加密(HTTPS):
  • 强制执行:验证 HTTP 重定向是否自动到 HTTPS。
  • HSTS:检查标Strict-Transport-Security头。

2. 安全标头:

  • 点击劫持保护:确保X-Frame-Options已设置(例如,DENYSAMEORIGIN)。

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 安全性

专注于用户浏览器中执行的逻辑。

  1. 易受攻击的库:npm audit使用诸如、Retire.js或 Burp DOM Invader之类的工具识别具有已知 CVE 的过时 JS 库。

2. 跨站脚本攻击(XSS):

  • 不受信任的输入:检查 URL 参数、哈希片段或查询字符串是否作为代码执行。
  • 基于 DOM:测试搜索栏或反馈表单,其中输入内容会直接反映在 DOM 中,而无需进行清理。
  • 内联处理程序:分析onload、、onclickonerror事件是否存在不安全的字符串连接漏洞。

3. 脚本完整性:

  • 第三方脚本:审查从未知域加载的脚本。
  • CSP 合规性:检查内联脚本中是否存在CSP 中没有对应的nonce或。hash

0x05 访问控制和浏览器隔离

确保资源仅限授权用户和上下文访问。

  1. CORS(跨域资源共享):
  • 通配符:检查是否安全Access-Control-Allow-Origin: *
  • 方法:验证 CORS 预检中是否存在危险方法(例如PUTDELETE已启用跨域)。

2. 隔离策略:Cross-Origin-Resource-Policy确保(CORP) 和(COEP)设置正确Cross-Origin-Embedder-Policy,以防止数据泄露(例如,Spectre/Meltdown 缓解措施)。

3. Service Workers:检查是否存在配置错误的 Service Workers,这些 Service Workers 可能会过度缓存敏感资源。

4. 绕过授权:

  • 403 绕过:尝试直接访问受限页面(例如,通过强制浏览),看看是否可以绕过 403 禁止访问状态。

0x06 内容操控与逻辑

测试应用程序如何处理用户输入,以防止操纵用户界面或流程。

  1. 点击劫持:尝试在浏览器中加载网站,<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 多个漏洞》

评论:0   参与:  0