4.5 Shopify Twitter断连接攻击

难度:

URL:https://twitter-commerce.shopifyapps.com/auth/twitter/disconnect/

报告位置:https://www.hackerone.com/reports/111216/

报告日期:2016年1月17日

支付奖金:500美元

当我们寻找潜在的CSRF漏洞时,一定要注意到能够修改服务器端数据的GET请求。例如,黑客发现了Shopify特性中的一个漏洞,该特性集成了Twitter到网站上,以便于能够让店主更方便地推销他们的产品。该特性同时也允许用户断开已经连接到网店的Twitter账号。断开Twitter账号的URL如下:

事实证明,当访问该URL时,将会发起一个GET请求以断开账号连接,具体如下:

另外,当该连接最开始实现时,Shopify并没有验证发送给它的GET请求的合法性,从而导致该URL存在CSRF漏洞。

提交该报告的黑客WeSecureAPP提供了如下所示的漏洞验证程序(POC)HTML文档:

当被打开时,该HTML文档将导致浏览器通过读取<img>标签中的src属性❶向https://twitter-commerce.shopifyapps.com发起一个HTTP GET请求。如果有人已经通过他的Twitter账号连接到Shopify并且访问了具有该<img>标签的网页,那么他们的Twitter账号将会从Shopify断开。

要点

重点关注会在服务器端执行操作的HTTP请求,例如通过GET请求断开Twitter账号。正如之前提到的,应该确保GET请求永远不能修改服务器端数据。在本例中,你可以通过使用代理服务器,例如,Burp、OWASP的ZAP以监测发送到Shopify的HTTP请求来发现这些漏洞。