本文講的是<b>一種繞過 CSP 在 Twitter 子站中執行 XSS 的攻擊</b>,現在就開始講述發現這一漏洞的過程,首先我對twitter進行了子域名收集,發現了https://careers.twitter.com這一網站,你可以在這一網站上向twitter投履歷,找工作,不過我在這個網站尋找漏洞~
在測試了一段時間之後,我想我在URL中的location參數中找到了一個反射型的xss漏洞:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInVGcq5SN5EDO4MDN5gTOyQTO5QTMvw1NwcDM3EDMy8CXzRWYvxGc19CXt92YuU3boRjL3d3dvw1LcpDc0RHaiojIsJye.jpeg)
但是它并沒有彈框,我以為不能使用這一參數對xss進行觸發,後來發現這裡使用了CSP,如下:
CSP阻止了彈框的進行,是以很不幸,我需要在CSP這一方面下下工夫。然後我詢問了XSS方面的大牛 @brutelogic,跟他說了一下我目前碰到的情況,他告訴我想辦法去繞過CSP,然後再進行XSS攻擊。
我嘗試了很多方法,在将要放棄的時候,我發現了在get請求當中還存在一個比較隐蔽的URL:
這一頁面傳回頭部的Content-type是application/javascript,于是我将tpm_cb參數中寫入xss代碼,他會在頁面上顯示:
真的是太幸運了,然後我就将這兩個漏洞結合起來,xss就進行執行了,是以我構造了如下的payload:
可以看到,已經彈框了~
在發現漏洞之後,立刻将漏洞送出到了hackerone,很快對我送出的漏洞進行分類和獎勵,同時twitter團隊也很快修複了xss漏洞,不過CSP繞過漏洞花的時間略長,但是到最後雙方都很滿意。感謝twitter安全團隊以及hackerone社群。
原文釋出時間為:2017年7月8日
本文作者:xnianq
本文來自雲栖社群合作夥伴嘶吼,了解相關資訊可以關注嘶吼網站。
<a href="http://www.4hou.com/web/6163.html" target="_blank">原文連結</a>