【10.13】Bug Bounty Write-up 總結
今天慣例郵箱收到了Twitter的郵件提醒有新的post,這種郵件每天都能收到幾封,正好看到一個Bug Bounty的write up,比較感興趣,看起來也在我的理解範圍之內,這裡對這篇write up和另一篇一起做一個總結,希望能對自己對於web security的學習和bug bounty的路程有所幫助。
write-up 地址
Instagram的漏洞
一開始作者Sarmad Hassan (Juba Baghdad)本來想在facebook的頁面繞開instagram的驗證策略,但是在之後瀏覽Instgram的官網過程中,發現了Instgram顯示的一個新功能IGTV,您可以通過這個功能釋出一個豎屏視訊,也可以瀏覽其他人釋出的IGTV視訊。
在測試這個新功能時,作者發現視訊釋出後,點選編輯選項並通過butpsuite攔截髮出的請求
POST /media/1887820989027383407/edit/ caption=test&publish_mode=igtv&title=test
以上請求中,路徑中的1887820989027383407是一個media ID,而作者發現這個ID存在於在Instrgram釋出的所有照片、普通視訊和IGTV視訊中,而你可以在這些照片或視訊中新增可選的Description,IGTV的描述就對用於請求中的caption選項。
所以如果把media ID換成其他人釋出的內容的ID呢?
首先是怎樣找到media ID,作者發現有兩種方式
- 檢視發出內容的網頁原始碼
- 點擊發出內容的like按鈕,並攔截請求
之後的過程就很順利了,只要其他人釋出的內容中並沒有新增描述,就可以通過這種方式進行修改。雖然修改media ID之後發出的請求返回了一個帶有錯誤資訊的響應,但是對應的其他人釋出內容的description已經被改變了。
從這一個漏洞中我可以學到
- 經常瀏覽關注網站的網頁,檢視是否有新的功能出現,這種新功能往往會存在漏洞
- 在存在互動,有上傳內容的地方,多攔截請求,檢視請求中是否有值得注意的地方
我覺得對於我自己來說,攔截請求這一塊是很容易想到的,但更多可能會注意到其中的引數,而不是網址中的那個media ID,而且之後還要由此聯想到去修改其他人釋出的內容。
Twitter的XSS漏洞
這個漏洞發現者tbmnull一開始就是在挖掘Twitter的子域名,然後找到了這樣一個可能存在xss的網址
https://careers.twitter.com/en/jobs-search.html?location=1" onmouseover=”alert(1)&q=1&start=70&team=
但是由於存在CSP,阻止了js程式碼的執行,彈窗無法彈出,所以關鍵在於怎樣繞過CSP。
作者花費了很多功夫找到了一個網址
https://analytics.twitter.com/tpm?tpm_cb=
請求該網址,響應的Content-Type是application/javascript,而且引數tpm_cb會直接反射到頁面上。
所以作者把這兩個發現結合到一起,
https://careers.twitter.com/en/jobs-search.html?location=1"><script src=//analytics.twitter.com/tpm?tpm_cb=alert(document.domain)>//
由於兩個網址同源,繞過了CSP對js指令碼的限制,最終成功彈窗。
這個漏洞的挖掘思路我個人覺得更符合一般漏洞挖掘的步驟,很多時間和精力+一點點運氣,雖然作者在write-up中並沒有多提,但是很顯然這兩個網址的發現是很不容易的。
- 從子域名開始的漏洞挖掘方法,是否可以寫一個爬蟲,對網站的子域名進行總結,以及對各種url進行分析,分離出引數
- 提交的請求中,網頁中原本無法編輯(只能通過列表選擇)的位置,也可以通過攔截請求進行修改
- XSS為什麼沒有發揮作用?是否可以繞過?
- 怎樣繞過CSP——同源是關鍵
- 漏洞的挖掘需要很耐心和仔細,不要著急
以上,是我今天看的兩篇write-up,感覺學習web security還是要多看這種例項,才能對各種漏洞有更清晰的認識和理解,之後希望每天都有時間看一兩篇write-up,加油!