
这是一个 Chrome/Firefox 扩展程序,它可以执行以下操作:
'、" 和 < 是否未经编码就被反射。Xnl Reveal 标签页。Xnl Reveal 标签页中)。显示反射参数警报的功能受到 @renniepak 在 Critical Thinking - Bug Bounty Podcast 第 42 集评论的启发,他在评论中提到他有自己的浏览器扩展程序,可以让他知道任何反射情况。
发现的反射参数数量通过扩展图标上的绿色徽章显示。但是,如果任何反射参数名称属于 @Jhaddix 和 @G0LDEN_infosec 的“sus”参数研究 中描述的类别,则徽章将变为红色。如果存在任何“sus”参数,则这些类别也会显示在 DevTools Xnl Reveal 标签页、警报框和剪贴板的输出中,例如 boringParameter, query [XSS], path [LFI/RFI | SSRF | XSS](这与我 GAP Burp 扩展程序 中的“sus”参数识别相同)。
显示隐藏元素和启用禁用元素的功能受到这条 Critical Thinking - Bug Bounty Podcast 的推文 的启发,我最初将其创建为浏览器书签。
扩展图标通常以黑色背景
显示,但如果图标出现红色背景
,则表示 Wayback CDX Server API 可能不可用。即使主要功能被禁用,扩展程序仍会每 10 分钟检查一次 API 的状态。
重要提示:当使用 waymore、waybackurls 或 gau 等工具从 Wayback 存档中获取 URL 时,它们使用的是 CDX Server API。如果该 API 宕机,你将无法从 Wayback Machine 获取任何数据,只能从其他来源获取。此外,只有 waymore 会让你知道存在问题。
将本仓库克隆到你的机器上,然后根据你想要安装在 Chrome 还是 Firefox 浏览器上,按照以下说明操作:
通过以下方式打开 Chrome 中的扩展程序管理器: Kebab 菜单(三个垂直点)-> 扩展程序 -> 管理扩展程序
如果开发者模式未打开,请点击右上角的开关将其打开。
现在点击左上角的 Load unpacked 按钮。
前往存放 Xnl Reveal 文件夹的目录并选择它。
扩展程序现已加载。你可以点击工具栏中的扩展程序图标,然后点击图钉图标将 Xnl Reveal 固定到工具栏。
重要提示:对于 Firefox 扩展程序,每次打开 Firefox 时你都需要重新加载它。遗憾的是,我无法将其添加到 Firefox 商店以避免这种情况,因为要做到这一点必须是 Manifest v3。Xnl Reveal 必须使用 Manifest v2(除非其他人能想出办法,因为我想不到),它的安全限制更少,因此才能正常工作。
在新的浏览器标签页中转到 about:debugging。
点击页面左侧的 此 Firefox 标题。
点击 临时扩展 标题下的 加载临时附加组件... 按钮。
导航到下载仓库中的 Firefox 文件夹,选择任意文件,然后点击 打开。
扩展程序现已加载。你可以点击工具栏中的扩展程序图标,然后点击设置齿轮图标,并选择 固定到工具栏。
Xnl Reveal 徽标并选择 选项(Options),你将进入选项页面。Xnl Reveal 徽标并选择 管理扩展(Manage Extension),然后点击 选项(Options) 标签页以查看选项页面。
你有以下选项:
Canary token - 当发送请求以测试查询参数是否被反射时,这就是被使用并检查的参数值。Check for reflection of ' " < - 当发送请求以测试查询参数是否被反射时,字符串 '",xnl 会被附加到 Canary token 的末尾。如果这些字符中的任何一个未经编码就被反射,那么这也会被报告。如果传入这些字符导致 Canary token 完全不被反射(可能是 WAF 阻止了 <),那么将只使用 Canary token 再次发送一个请求。Show alert box for reflections - 如果选中此选项,并且在弹出菜单(见下文)中选中了 Show query parameter reflections,那么将显示一个浏览器警报框,其中包含任何被反射的查询参数的详细信息。Copy reflection text to clipboard - 如果选中此选项,并且在弹出菜单(见下文)中选中了 Show query parameter reflections,那么当发现参数反射时,详细信息会放入用户的剪贴板,同时写入 DevTools 的 Xnl Reveal 标签页(如果要求,也会显示在警报框中)。这意味着只要你看到警报框或 DevTools 标签页中的详细信息,就可以立即转到笔记并粘贴详细信息。重要提示:浏览器可能会请求站点权限以与剪贴板交互。你需要接受此权限才能使用此功能。Param blacklist - 这是一个以逗号分隔的参数名称列表(例如 param1,param2),你不希望用 canary token 替换这些参数来检查其是否反射。当测试某些参数会导致问题时(例如让你退出登录),可以使用此选项。Check delay - 当页面加载时,根据设置,扩展程序会尝试显示隐藏元素并启用禁用元素。但是,有时页面的某些部分是动态加载的,它们不在原始响应中。扩展程序会在页面最初加载后的此延迟时间(以秒为单位)后再次尝试显示和启用。Wayback RegEx - 如果已选择将 Wayback 存档端点写入 DevTools 的设置,则只有与输入的 RegEx 匹配的 wayback 端点才会显示在 DevTools 标签页中。如果该字段留空,则最多返回 1000 个 Wayback 端点。重要提示:任何输入的 RegEx 都将被视为不区分大小写KNOXSS API Key - 输入你的 KNOXSS API 密钥。如果保存了密钥,并且在弹出菜单中启用了 Show query parameter reflections,那么当发现反射时,URL 会自动发送到 KNOXSS API。X-API-KEY 头会设置为保存的密钥,当前页面的 cookie 会作为 auth 头传递。KNOXSS API 的响应会写入 Xnl Reveal DevTools 标签页。API 调用是异步进行的,因此不会阻塞页面交互。Extension Scope 选项:
Whitelist 或 Blacklist - 这决定哪些站点会进行参数反射检查和/或 wayback 端点检索。根据所选的选项,主机必须包含或不包含输入的词才会被处理。Host match word to add - 输入一个存在于主机名中的词(或完整主机名),你想要将其加入白名单或黑名单,然后点击 Add(添加) 按钮将其添加到范围列表。例如,如果你只想在 Redbull 页面上运行,只需添加 redbull 并设置为白名单。Add - 将输入的词添加到范围列表。Remove selected - 从范围列表中移除选定的词。Clear all - 从范围列表中移除所有词。Save - 如果更改了任何选项,请点击此按钮保存以供将来使用。Clear Saved URLs/Params - 如果扩展程序正在查找反射的查询参数,那么你不会希望不断收到相同 URL/参数组合的警报,因此已报告的组合会被存储以防止这种情况。但是,如果你想清除这些记忆,可以点击此按钮将其移除。同样,我们也不想不断向 Wayback 存档发送相同的请求,因此这些请求也会被存储,但如果按下此按钮,则可以清除。如果你点击工具栏中的 Xnl Reveal 徽标,你将看到一个弹出菜单。
你有以下设置:
ENABLE REVEAL - 如果未选中此项,则扩展程序不会执行任何操作。如果选中,它将根据设置的其他选项,对访问的网页(如果在范围内)采取某些操作。Show query parameter reflections - 如果选中此项,那么当访问的网页带有任何查询参数时,会为每个参数发送一个后台请求,依次将每个参数替换为选项页面中的 Canary token。如果在响应中的任何参数中找到了该 token,则会向 DevTools 的 Xnl Reveal 标签页写入一条消息,为你提供 URL 以及该页面上所有被反射的参数。如果选中了相关选项,这些详细信息还可以显示在浏览器警报框中,并复制到用户的剪贴板。扩展程序还会显示一个徽章,其中包含发现的反射数量。CHARSET IS NOT SPECIFIED IN RESPONSE!(如果 HTML 页面未显式设置字符集)。这可能意味着使用这篇博客中介绍的技巧,XSS 可能会更容易。Write Wayback endpoints to DevTools - 如果选中此项,那么对于浏览器中访问的每个位置/路径,将从 Wayback 存档中检索最多 1000 个端点,并写入 DevTools 的 Xnl Reveal 标签页。一旦某个位置/路径已发送到 Wayback API,就不会再次发送,除非点击了 Clear Saved URLs/Params。Show hidden elements - 如果选中此项,则任何隐藏的元素(img、span 和 div 除外)都将被显示。它们将以红色边框和红色标签显示,并提供一些详细信息。有时,如果页面是动态的,元素可能无法显示。Enable disabled elements - 如果选中此项,则任何隐藏的元素(img、span 和 div 除外)都将被显示。它们将以红色边框和红色标签显示,并提供一些详细信息。有时,如果页面是动态的,元素可能无法显示。你随时可以点击 Run Now(立即运行) 按钮来更改当前加载的页面。如果你在网页上右键单击,你将看到浏览器上下文菜单,例如,如果你在 example.com 上,并且在 Options 中选择了 Whitelist,你将看到以下内容:
即使未在 Popup Menu(弹出菜单) 中选择 ENABLE REVEAL 选项,这些选项也可用。你可以从 3 个选项中进行选择:
Get wayback endpoints - 如果点击此项,将打开一个新标签页,其中包含所点击窗口所属域名的 Wayback 存档端点。此功能不受任何其他设置的影响,即使扩展程序未启用也可以运行。Show hidden elements - 这将显示当前页面上的所有隐藏元素,方式与 Show hidden elements 相同,但扩展程序无需启用。Enable disabled elements - 这将启用当前页面上的所有禁用元素,方式与 Enable disabled elements 相同,但扩展程序无需启用。Show Google cache version - 如果点击此项,将打开一个新标签页,其中会打开当前页面的 Google 缓存版本。即使网站已不可用,Google 也会在其存档中存储副本,你仍然可以访问缓存的页面。Show FOFA domain search - 如果点击此项,将打开一个新标签页,其中 FOFA 会显示 domain="{TARGET}" 的搜索结果,其中 {TARGET} 是活动标签页的域名。Create word list 目前仅限 CHROME - 如果点击此项,将根据页面内容创建一个单词列表,并显示在新标签页中。{Add|Remove} {HOST} {from|to} {whitelist|blacklist} - 根据当前标签页的主机名是否已在范围列表中,以及选择的是白名单还是黑名单选项,你将看到一个用于添加/移除它的菜单项。例如,如果你在 https://www.redbull.com/gb-en/ 上,并且在 Options 页面中选择了 Blacklist,而 redbull.com 不在范围列表中,你将看到 Add redbull.com to blacklist 这个上下文菜单项。重要提示:如果菜单项未显示正确的主机,你可能需要刷新标签页。有关参数反射和 wayback 端点的消息以前会写入控制台,但现在会写入浏览器 DevTools 中的一个单独标签页。在这里你可以:
Filter messages... - 输入任何文本即可对消息进行实时过滤,从而更容易在存储的消息中找到特定的反射或 Wayback 结果。Copy All Messages - 将所有消息复制到剪贴板,以便粘贴到你的笔记中!Copy All URLs - 从当前可见的消息中提取所有唯一的 URL(遵循任何活动过滤器),并将它们复制到剪贴板,每行一个。这对于快速收集来自反射和 Wayback 结果的所有 URL 以进行进一步测试非常有用。Clear Messages and Cache - 清除标签页和本地存储中的所有消息。它还会清除之前搜索过的 wayback 端点。