用来绕过管理面板的最简单方法 | bypass

用来绕过管理面板的最简单方法 | bypass

在这个故事中,我正在解释我向 Hackerone 中的一个程序报告的一个漏洞。

几个月前我的朋友推荐我学习一个叫做 HTTP Request Smuggling (HTTP请求走私) 的漏洞,通常我不喜欢学习经典漏洞,因为很多人都在寻找它们。

然而,我开始学习它并在我的主要目标上测试它,我的目标是我学习的所有新东西,我都会在它上面测试。

目标是一个私人程序,所以我不能透露任何关于它的信息,它有一个管理面板,用 0auth 代理面板保护,我不知道它是如何工作的,但对于一个未经身份验证的用户来说,这是你在访问 https://admin.target.com/ 时看到的:

用来绕过管理面板的最简单方法 | bypass

代理以某种方式识别未经身份验证的用户,然后要求用户使用谷歌登录。

我知道这是一个代理面板,如果您绕过要求您使用 google 登录的页面,您可能会发现自己已登录。

我在那个端点上测试了我学到的 HTTP 请求走私技巧以绕过代理面板,这是我发送到管理面板的 HTTP 请求的示例:

GET /test?a=a% HTTP/1.1
Host: admin.target.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36

GET /admin/login HTTP/1.1
Host: admin.target.com
用来绕过管理面板的最简单方法 | bypass

这个 http 请求实际上通过一个请求发送多个 http 请求,http 响应将在一个请求中包含 2 个响应,这没有错,它是一个 HTTP 功能,只关注第二个请求,我没有使用任何用户代理头。

http 请求实际上是 HTTP/2 但我将其转换为 HTTP/1.1,当你看到这个请求时你可能会说这是一个垃圾请求,特别是如果你知道这不是利用 HTTP 请求走私的正确方法,但是当我看到http 响应让我感到震惊,因为要求我使用 google 登录的面板消失了,我看到了另一个与普通用户登录面板相同的登录面板。

我报告了该程序的漏洞,审查了他们所说的程序政策If you reach a normal login panel please let us know on the admin panel,而这正是我所做的。

我已将漏洞报告给标题为 HTTP request smuggling leads to bypass admin panel proxy panel,他们在不到 10 分钟内对报告进行了分类,将严重性更新为严重,我盯着报告,因为我很震惊为什么这是一个关键问题。

然后其中一个人员 triagers 回应并告诉我,如果我使用我在www.target.com上为我自己的帐户创建的普通用户凭据登录到普通的管理面板登录,我可以通过登录来充当管理员到管理面板,我能够修改网站的所有内容,这就是为什么他们将严重性更新为严重的原因。

几分钟后,他们告诉我实际上管理面板实际上没有被绕过,因为我的垃圾 http 请求,管理面板被绕过,因为我没有使用任何 User-Agent http 标头,而我用作 poc 的 http 请求完全不同事情,实际上攻击者能够通过仅删除其 User-Agent 标头来绕过代理面板,我就像 WTF 正在进行中一样?

不管怎样,这里是利用该漏洞的 HTTP 请求:

GET /admin/login HTTP/1.1
Host: admin.target.com

你应该在管理员登录端点看到正常的网站登录页面,也删除了需要使用谷歌登录的代理登录页面。

仅用了 1 小时就解决了漏洞并授予了 4 位数的赏金,该程序很棒,他们真的很感激我,我也很感激我的朋友

莫塞克建议我学习 HTTP 请求走私,该漏洞不是 http 请求走私,但我通过测试此漏洞类型发现了它。

有时你寻找一个门,你可能找不到它,但你可以通过寻找第一个门找到另一个门。

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注