4.1.3 检查 Web 应用程序路径或功能是否存在信息泄露

检查 Web 应用程序路径或功能是否存在信息泄露

ID
WSTG-INFO-03

总结

本节介绍如何测试各种元数据文件是否存在 Web 应用程序路径或功能的信息泄漏。此外,蜘蛛、机器人或爬虫要避免的目录列表也可以创建为通过应用程序映射执行路径的依赖项。还可能收集其他信息以识别攻击面、技术详细信息或用于社会工程参与。

测试目标

  • 通过分析元数据文件来识别隐藏或模糊的路径和功能。
  • 提取和映射其他信息,以便更好地了解手头的系统。

如何测试

下面使用 wget 执行的任何操作也可以使用curl完成。许多动态应用程序安全测试(DAST)工具(如ZAP和Burp Suite)都包含对这些资源的检查或解析,作为其爬虫/爬虫功能的一部分。它们也可以使用各种Google Dorks或利用高级搜索功能 inurl:

Robots

网络蜘蛛、Robots或爬虫检索网页,然后递归遍历超链接以检索更多 Web 内容。它们接受的行为由 Web 根目录中的 [robots.txt] (https://www.robotstxt.org/) 文件的Robots排除协议 指定。

例如,下面引用了 2020 年 5 月5 日 [Google] (https://www.google.com/robots.txt) 采样的robots.txt 文件的开头:

User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
Disallow: /sdch
...

User-Agent 指令指的是特定的网络蜘蛛/robots/爬虫。例如,指的是来自 谷歌的网络爬虫User-Agent: Googlebot,而 User-Agent: bingbot指的是来自Microsoft的爬虫。 在上面的示例中User-Agent: *适用于所有网络蜘蛛/机器人/爬虫

该指令 Disallow指定了蜘蛛/机器人/爬虫禁止哪些资源。在上面的示例中,禁止以下内容:

...
Disallow: /search
...
Disallow: /sdch
...

网络蜘蛛/机器人/爬虫可以故意忽略 文件中指定的 Disallow指令。因此,robots.txt 不应将其视为对第三方访问、存储或重新发布 Web 内容的方式实施限制的机制。

robots.txt 文件是从 Web 服务器的 Web 根目录中检索的。例如,www.google.com 要检索 robots.txt 使用wgetcurl

$ curl -O -Ss http://www.google.com/robots.txt && head -n5 robots.txt
User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
...
分析robots.txt 使用 Google 网站站长工具

网站所有者可以使用Google“分析robots.txt ”功能来分析网站,作为其Google网站管理员工具的一部分。此工具可以帮助进行测试,过程如下:

  1. 使用 Google 帐号登录 Google 网站站长工具。
  2. 在仪表板上,输入要分析的站点的 URL。
  3. 在可用方法之间进行选择,然后按照屏幕上的说明进行操作。

META 标签

<META> 标签位于每个HTML文档的 HEAD部分中,如果机器人/蜘蛛/爬虫的起点不是从webroot以外的文档链接(即深层链接)开始,则应在整个站点中保持一致。机器人指令也可以使用特定的 META 标签来指定。

Robots META Tag

如果没有<META NAME="ROBOTS" ... > 条目,则“机器人排除协议”默认分别为INDEX,FOLLOW 。因此,“机器人排除协议”定义的其他两个有效条目的前缀为 NO...NOINDEXNOFOLLOW

根据 webroot 中的robots.txt文件列出的 Disallow 指令,在每个网页中进行正则表达式搜索 <META NAME="ROBOTS"。然后将结果与 webroot 中的robots.txt文件进行比较。

其他META信息标签

组织经常在 Web 内容中嵌入信息 META 标签,以支持各种技术,例如屏幕阅读器、社交网络预览、搜索引擎索引等。此类元信息对于测试人员识别所使用的技术以及探索和测试的其他路径/功能很有价值。以下元信息于 2020 年 05 月5日通过查看www.whitehouse.gov 页面源代码检索:

...
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="The White House" />
<meta property="og:description" content="We, the citizens of America, are now joined in a great national effort to rebuild our country and to restore its promise for all. – President Donald Trump." />
<meta property="og:url" content="https://www.whitehouse.gov/" />
<meta property="og:site_name" content="The White House" />
<meta property="fb:app_id" content="1790466490985150" />
<meta property="og:image" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta property="og:image:secure_url" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:description" content="We, the citizens of America, are now joined in a great national effort to rebuild our country and to restore its promise for all. – President Donald Trump." />
<meta name="twitter:title" content="The White House" />
<meta name="twitter:site" content="@whitehouse" />
<meta name="twitter:image" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta name="twitter:creator" content="@whitehouse" />
...
<meta name="apple-mobile-web-app-title" content="The White House">
<meta name="application-name" content="The White House">
<meta name="msapplication-TileColor" content="#0c2644">
<meta name="theme-color" content="#f5f5f5">
...

站点地图

站点地图是一个文件,开发人员或组织可以在其中提供有关站点或应用程序提供的页面、视频和其他文件以及它们之间的关系的信息。搜索引擎可以使用此文件更有效地浏览您的网站。同样,测试人员可以利用“站点地图.xml”文件来更深入地了解正在调查的网站或应用程序。

以下摘录来自 Google 于 2020 年 05 月5日检索的主要站点地图。

$ wget --no-verbose https://www.google.com/sitemap.xml && head -n8 sitemap.xml
2020-05-05 12:23:30 URL:https://www.google.com/sitemap.xml [2049] -> "sitemap.xml" [1]

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">
  <sitemap>
    <loc>https://www.google.com/gmail/sitemap.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://www.google.com/forms/sitemaps.xml</loc>
  </sitemap>
...

从那里探索测试人员可能希望检索 gmail 站点地图https://www.google.com/gmail/sitemap.xml

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.google.com/intl/am/gmail/about/</loc>
    <xhtml:link href="https://www.google.com/gmail/about/" hreflang="x-default" rel="alternate"/>
    <xhtml:link href="https://www.google.com/intl/el/gmail/about/" hreflang="el" rel="alternate"/>
    <xhtml:link href="https://www.google.com/intl/it/gmail/about/" hreflang="it" rel="alternate"/>
    <xhtml:link href="https://www.google.com/intl/ar/gmail/about/" hreflang="ar" rel="alternate"/>
...

security文件

security.txt 被IETF批准为RFC 9116 - 一种有助于安全漏洞披露的文件格式 ,允许站点定义安全策略和联系方式。在测试方案中可能对此感兴趣的原因有多种,包括但不限于:

确定要包含在发现/分析中的更多路径或资源。
开源情报收集。
查找有关漏洞赏金等的信息
社会工程学。

该文件可能存在于 Web 服务器的根目录或 .well-known/ 目录中,例如:

  • https://example.com/security.txt
  • https://example.com/.well-known/security.txt

以下是从 LinkedIn 2020 年 05 月 5日检索到的真实示例:

$ wget --no-verbose https://www.linkedin.com/.well-known/security.txt && cat security.txt
2020-05-07 12:56:51 URL:https://www.linkedin.com/.well-known/security.txt [333/333] -> "security.txt" [1]
# Conforms to IETF `draft-foudil-securitytxt-07`
Contact: mailto:security@linkedin.com
Contact: https://www.linkedin.com/help/linkedin/answer/62924
Encryption: https://www.linkedin.com/help/linkedin/answer/79676
Canonical: https://www.linkedin.com/.well-known/security.txt
Policy: https://www.linkedin.com/help/linkedin/answer/62924

OpenPGP公钥包含一些元数据,可以提供有关密钥本身的信息。以下是一些可以从OpenPGP公钥中提取的常见元数据元素:

密钥到期日期:OpenPGP公钥可以设置到期日期,在此日期之后它们被视为无效。密钥到期日期指定密钥不再有效的时间。
用户 ID:公钥可以有一个或多个关联的用户 ID,用于标识与密钥关联的所有者或实体。用户 ID 通常包括密钥所有者的姓名、电子邮件地址和可选注释等信息。

  • Key ID: 密钥 ID 是从公钥材料派生的短标识符。它有助于识别密钥,通常显示为八个字符的十六进制值。
  • Key Fingerprint: 密钥指纹是从密钥材料派生的更长、更独特的标识符。它通常显示为 40 个字符的十六进制值。密钥指纹通常用于验证公钥的完整性和真实性。
  • Key Algorithm: 密钥算法表示公钥使用的加密算法。OpenPGP支持各种算法,如RSA,DSA和ECC(椭圆曲线加密)。
  • Key Size: 密钥大小是指加密密钥的长度或大小(以位为单位)。它指示密钥的强度并确定密钥提供的安全级别。
  • Key Creation Date: 密钥创建日期指示生成或创建密钥的时间。
  • Key Expiration Date: OpenPGP公钥可以设置到期日期,在此日期之后它们被视为无效。密钥到期日期指定密钥不再有效的时间。
  • User IDs: 公钥可以有一个或多个关联的用户 ID,用于标识与密钥关联的所有者或实体。用户 ID 通常包括密钥所有者的姓名、电子邮件地址和可选注释等信息。

Humans文件

humans.txt 是一项了解网站背后人员的举措。它采用文本文件的形式,其中包含有关为构建网站做出贡献的不同人员的信息。此文件通常(但并非总是)包含与职业或工作地点/路径相关的信息。

以下示例是从 Google 2020 May 05 检索的:

$ wget --no-verbose  https://www.google.com/humans.txt && cat humans.txt
2020-05-07 12:57:52 URL:https://www.google.com/humans.txt [286/286] -> "humans.txt" [1]
Google is built by a large team of engineers, designers, researchers, robots, and others in many different sites across the globe. It is updated continuously, and built with more tools and technologies than we can shake a stick at. If you'd like to help us out, see careers.google.com.

其他知名信息来源

还有其他 RFC 和互联网草案建议对.well-known/ 目录中的文件进行标准化使用。这些列表可以在这里这里找到。

对于测试人员来说,查看 RFC/草稿并创建一个要提供给爬网程序或模糊程序的列表以验证此类文件的存在或内容是相当简单的。

工具

浏览器(查看源代码或开发工具功能)

  • 浏览器(查看源代码或开发工具功能)
  • curl
  • wget
  • Burp Suite
  • ZAP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值