当前位置:网站首页>敏感信息泄露
敏感信息泄露
2022-08-02 03:25:00 【CHIAJ176】
信息披露的常见来源
信息泄露可能发生在网站内的各种环境中。以下是一些常见示例,您可以在其中查看敏感信息是否公开。
- 网络爬网程序的文件
- 目录列表
- 开发者评论
- 错误信息
- 调试数据
- 用户帐户页面
- 备份文件
- 不安全的配置
- 版本控制历史
网络爬网程序的文件
许多网站在 上提供文件,并帮助爬网程序导航其网站。除其他事项外,这些文件通常列出爬网程序应跳过的特定目录,例如,因为它们可能包含敏感信息。robots.txt、sitemap.xml
由于这些文件通常不会从网站内部链接,因此它们可能不会立即出现在Burp的网站地图中。但是,值得尝试导航到或手动查看是否找到任何有用的东西
目录列表
可以将 Web 服务器配置为自动列出不存在索引页的目录的内容。这可以帮助攻击者快速识别给定路径上的资源,并直接分析和攻击这些资源。它特别增加了目录中用户无法访问的敏感文件的暴露,例如临时文件和故障转储。
目录列表本身不一定是安全漏洞。但是,如果网站也无法实施适当的访问控制,那么以这种方式泄漏敏感资源的存在和位置显然是一个问题。
开发人员注释
在开发过程中,有时会将内联 HTML 注释添加到标记中。在将更改部署到生产环境之前,通常会去除这些注释。但是,有时会被遗忘,错过,甚至故意留下,因为有人没有完全意识到安全隐患。虽然这些注释在呈现的页面上不可见,但可以使用Burp甚至浏览器的内置开发人员工具轻松访问它们。
有时,这些注释包含对攻击者有用的信息。例如,它们可能暗示隐藏目录的存在或提供有关应用程序逻辑的线索。
错误消息
信息泄露的最常见原因之一是详细的错误消息。作为一般规则,应密切注意在审核过程中遇到的所有错误消息。
错误消息的内容可以揭示有关给定参数的预期输入或数据类型的信息。这可以帮助您通过识别可利用的参数来缩小攻击范围。它甚至可能只是防止您浪费时间尝试注入根本不起作用的有效载荷。
详细错误消息还可以提供有关网站正在使用的不同技术的信息。例如,它们可能会显式命名网站正在使用的模板引擎、数据库类型或服务器及其版本号。此信息可能很有用,因为您可以轻松搜索此版本可能存在的任何记录在案的攻击。同样,您可以检查是否存在任何常见的配置错误或危险的默认设置,您可以利用这些错误或设置。其中一些可能会在官方文件中突出显示。
您可能还会发现该网站正在使用某种开源框架。在这种情况下,您可以研究公开可用的源代码,这是构建自己的漏洞利用的宝贵资源。
错误消息之间的差异还可以揭示在后台发生的不同应用程序行为。观察错误消息的差异是许多技术(如SQL注入、用户名枚举等)的关键方面。
调试数据
出于调试目的,许多网站会生成自定义错误消息和日志,其中包含有关应用程序行为的大量信息。虽然此信息在开发过程中很有用,但如果在生产环境中泄露,它对攻击者也非常有用。
调试消息有时可能包含开发攻击的重要信息,包括:
- 可通过用户输入操作的关键会话变量的值
- 后端组件的主机名和凭据
- 服务器上的文件和目录名称
- 用于加密通过客户端传输的数据的密钥
调试信息有时可能会记录在单独的文件中。如果攻击者能够访问此文件,它可以作为了解应用程序的运行时状态的有用参考。它还可以提供一些线索,说明它们如何提供精心编制的输入来操纵应用程序状态并控制接收到的信息。
用户帐户页面
就其本质而言,用户的个人资料或帐户页面通常包含敏感信息,例如用户的电子邮件地址、电话号码、API 密钥等。由于用户通常只能访问自己的帐户页面,因此这本身并不代表漏洞。但是,某些网站包含逻辑缺陷,可能允许攻击者利用这些页面来查看其他用户的数据。
例如,考虑一个网站,该网站根据参数确定要加载哪个用户的帐户页面。
GET /user/personal-info?user=carlos
大多数网站将采取措施防止攻击者简单地更改此参数以访问任意用户的帐户页面。但是,有时加载单个数据项的逻辑并不那么可靠。
攻击者可能无法完全加载其他用户的帐户页面,但例如,获取和呈现用户注册的电子邮件地址的逻辑可能不会检查参数是否与当前登录的用户匹配。在这种情况下,只需更改该参数,攻击者就可以在自己的帐户页面上显示任意用户的电子邮件地址。
通过备份文件泄露源代码
获取源代码访问权限使攻击者更容易了解应用程序的行为并构造高严重性攻击。敏感数据有时甚至在源代码中进行硬编码。这方面的典型示例包括用于访问后端组件的 API 密钥和凭据。
如果您可以确定正在使用特定的开源技术,则可以轻松访问有限数量的源代码。
有时,甚至可能导致网站公开自己的源代码。在绘制网站地图时,您可能会发现显式引用了某些源代码文件。不幸的是,请求它们通常不会泄露代码本身。当服务器处理具有特定扩展名的文件(如 )时,它通常会执行代码,而不是简单地将其作为文本发送到客户端。但是,在某些情况下,您可以诱骗网站返回文件的内容。例如,文本编辑器通常在编辑原始文件时生成临时备份文件。这些临时文件通常以某种方式指示,例如通过将波浪号 () 附加到文件名或添加其他文件扩展名。使用备份文件扩展名请求代码文件有时允许您在响应中读取文件的内容。.php
~
由于配置不安全而导致的信息泄露
由于配置不当,网站有时容易受到攻击。由于第三方技术的广泛使用,这种情况尤其常见,其大量的配置选项不一定被实现它们的人很好地理解。
在其他情况下,开发人员可能会忘记在生产环境中禁用各种调试选项。例如,HTTP 方法设计用于诊断目的。如果启用,Web 服务器将通过在响应中回显收到的确切请求来响应使用该方法的请求。此行为通常是无害的,但偶尔会导致信息泄露,例如可能由反向代理附加到请求的内部身份验证标头的名称。TRACE
版本控制历史记录
几乎所有网站都是使用某种形式的版本控制系统(如Git)开发的。默认情况下,Git 项目将其所有版本控制数据存储在名为 的文件夹中。有时,网站会在生产环境中公开此目录。在这种情况下,您只需浏览到 即可访问它。/.git
虽然手动浏览原始文件结构和内容通常不切实际,但有多种方法可以下载整个目录。然后,您可以使用 Git 的本地安装打开它,以访问网站的版本控制历史记录。这可能包括包含已提交更改和其他有趣信息的日志。.git
这可能无法让您访问完整的源代码,但比较差异将允许您阅读小段代码。与任何源代码一样,您可能还会发现敏感数据在某些更改的行中进行了硬编码。
.git
.svn
后续补充......bp实验室copy的
边栏推荐
猜你喜欢
随机推荐
Orasi: 1 vulnhub walkthrough
Solve the problem of uni - app packaged H5 website to download image
MySql高级 -- 约束
Query the indexes of all tables in the database and parse them into sql
The Error in the render: "TypeError: always read the properties of null '0' (reading)" Error solution
(7) 浅学 “爬虫” 过程 (概念+练习)
16.JS事件, 字符串和运算符
Phpstudy安装Thinkphp6(问题+解决)
What are the PHP framework?
3. PHP data types, constants, strings and operators
Thread Pool (Introduction and Use of Thread Pool)
IP access control: teach you how to implement an IP firewall with PHP
VIKINGS: 1 vulnhub walkthrough
Smart Tips for Frida Scripting in Kali Environment
PHP8.2的版本发布管理员和发布计划
hackmyvm: controller walkthrough
Praying: 1 vulnhub walkthrough
稳定好用的短连接生成平台,支持API批量生成
Baidu positioning js API
17.JS条件语句和循环,以及数据类型转换