赞
踩
什么是信息披露?
是指网站无意中向用户泄露敏感信息。根据具体情况,网站可能会将各种信息泄露给潜在的攻击者,包括:
敏感信息可能会泄露给只是以正常方式浏览网站的用户。常见的是攻击者通过恶意方式与网站交互来引发信息泄露。然后仔细研究网站的反应,以尝试识别有趣的行为。
信息泄露漏洞是如何产生的?
信息披露漏洞出现的方式比较多,大致可分为以下几类:
信息泄露漏洞的影响是什么?
信息披露漏洞可能会产生直接和间接的影响,具体取决于网站的目的,以及攻击者能够获得的信息。
信息披露的常见来源
网络爬虫的文件
许多网站提供文件/robots.txt并/sitemap.xml帮助爬虫浏览他们的网站。除其他外,这些文件通常会列出爬虫应跳过的特定目录,例如,因为它们可能包含敏感信息。
由于这些文件通常不会从网站内链接,它们可能不会立即出现在 Burp 的站点地图中。但是,值得尝试导航到/robots.txt或/sitemap.xml手动查看是否有任何用处。
目录列表
可以将 Web 服务器配置为自动列出不存在索引页面的目录的内容。这可以帮助攻击者快速识别给定路径上的资源,并直接分析和攻击这些资源。它特别增加了目录中不打算供用户访问的敏感文件的暴露,例如临时文件和故障转储。
目录列表本身不一定是安全漏洞。但是,如果网站也没有实施适当的访问控制,那么以这种方式泄露敏感资源的存在和位置显然是一个问题。
开发者评论
在开发过程中,有时会将内嵌 HTML 注释添加到标记中。在将更改部署到生产环境之前,通常会删除这些注释。但是,有时可能会忘记、遗漏评论,甚至故意留下评论,因为有人没有完全意识到安全隐患。尽管这些评论在呈现的页面上不可见,但可以使用 Burp 甚至浏览器的内置开发工具轻松访问它们。
有时,这些评论包含对攻击者有用的信息。例如,它们可能暗示隐藏目录的存在或提供有关应用程序逻辑的线索。
错误信息
信息泄露的最常见原因之一是冗长的错误消息。密切注意在审核期间遇到的所有错误消息。
实验:详细错误消息表明它正在使用易受攻击的第三方框架版本。
调试数据
出于调试目的,许多网站会生成自定义错误消息和日志,其中包含有关应用程序行为的大量信息。调试消息可能包含开发攻击的重要信息,包括:
调试信息有时可能会记录在单独的文件中。如果能够访问此文件,可以作为了解应用程序运行时状态的有用参考。还可以提供一些线索:“如何提供精心设计的输入来操纵应用程序状态和控制接收到的信息”。
实验室:调试页面上的信息披露
使用Burp,点击获取图片后,在目标里查找刚才的一系列请求。
右键单击条目/cgi-bin/phpinfo.php并选择“发送到重发器”
发送请求,在搜索栏,输入变量名,搜索所在的位置
用户帐户页面
用户的个人资料或帐户页面通常包含敏感信息,用户通常只能访问自己的帐户页面,因此这本身并不代表漏洞。但是,某些网站包含可能允许攻击者利用这些页面来查看其他用户数据的逻辑缺陷。
例如,考虑一个根据user参数确定要加载哪个用户的帐户页面的网站。
GET /user/personal-info?user=carlos
大多数网站都会采取措施防止攻击者简单地更改此参数以访问任意用户的帐户页面。但是,有时加载单个数据项的逻辑并不那么健壮。
攻击者可能无法完全加载其他用户的帐户页面,但获取和呈现用户注册电子邮件地址的逻辑可能无法检查user参数是否与当前登录的用户匹配。这种情况下,简单地更改user参数将允许攻击者在他们自己的帐户页面上显示任意用户的电子邮件地址。
通过备份文件泄露源代码
获得源代码访问权限使攻击者更容易了解应用程序的行为并构建高严重性攻击。敏感数据有时甚至被硬编码在源代码中。这方面的典型示例包括用于访问后端组件的 API 密钥和凭据。
如果可以确定正在使用特定的开源技术,那么这可以轻松访问有限数量的源代码。
有时甚至可能导致网站暴露自己的源代码。在规划网站时,您可能会发现某些源代码文件被明确引用。
但是请求它们通常不会显示代码本身。当服务器处理具有特定扩展名的文件时,例如.php,它通常会执行代码,而不是简单地将其作为文本发送给客户端。但是在某些情况下,可以诱使网站返回文件的内容。例如,文本编辑器通常会在编辑原始文件时生成临时备份文件。这些临时文件通常以某种方式表示,例如通过附加波浪号 (~) 到文件名或添加不同的文件扩展名。使用备份文件扩展名请求代码文件有时可以让您在响应中读取文件的内容。
实验室:通过备份文件泄露源代码
1.浏览/robots.txt,有一个/backup目录的存在。浏览以/backup目录。
2.浏览以/backup/ProductTemplate.java.bak访问源代码。在源代码中找到连接构建器包含 Postgres 数据库的硬编码密码。
一旦攻击者可以访问源代码,这可能是朝着识别和利用其他几乎不可能的漏洞迈出的一大步。一个这样的例子是不安全的反序列化。稍后我们将在一个专门的主题中研究此漏洞。
配置不安全导致信息泄露
由于配置不当,网站有时很容易受到攻击。由于第三方技术的广泛使用,这种情况尤其常见,其大量的配置选项不一定被实施它们的人充分理解。
在其他情况下,开发人员可能会忘记在生产环境中禁用各种调试选项。例如,HTTPTRACE方法是为诊断目的而设计的。如果启用,Web 服务器将TRACE通过在响应中回显接收到的确切请求来响应使用该方法的请求。这种行为通常是无害的,但偶尔会导致信息泄露,例如可能被反向代理附加到请求的内部身份验证标头的名称。
版本控制历史
几乎所有网站都是使用某种形式的版本控制系统开发的,例如 Git。默认情况下,Git 项目将其所有版本控制数据存储在一个名为.git. 有时,网站会在生产环境中公开此目录。在这种情况下,可以通过简单地浏览来访问它/.git
虽然手动浏览原始文件结构和内容通常是不切实际的,但有多种方法可以下载整个.git目录。然后,可以使用本地安装的 Git 打开它,以访问网站的版本控制历史记录。这可能包括包含已提交更改和其他有趣信息的日志。
这可能无法让访问完整的源代码,但比较差异将使您能够阅读小段代码。与任何源代码一样,可能还会在某些更改的行中找到硬编码的敏感数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。