1. 程式人生 > >【10.13】Bug Bounty Write-up 總結

【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,作者發現有兩種方式

  1. 檢視發出內容的網頁原始碼
  2. 點擊發出內容的like按鈕,並攔截請求

之後的過程就很順利了,只要其他人釋出的內容中並沒有新增描述,就可以通過這種方式進行修改。雖然修改media ID之後發出的請求返回了一個帶有錯誤資訊的響應,但是對應的其他人釋出內容的description已經被改變了。

從這一個漏洞中我可以學到

  1. 經常瀏覽關注網站的網頁,檢視是否有新的功能出現,這種新功能往往會存在漏洞
  2. 在存在互動,有上傳內容的地方,多攔截請求,檢視請求中是否有值得注意的地方

我覺得對於我自己來說,攔截請求這一塊是很容易想到的,但更多可能會注意到其中的引數,而不是網址中的那個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中並沒有多提,但是很顯然這兩個網址的發現是很不容易的。

  1. 從子域名開始的漏洞挖掘方法,是否可以寫一個爬蟲,對網站的子域名進行總結,以及對各種url進行分析,分離出引數
  2. 提交的請求中,網頁中原本無法編輯(只能通過列表選擇)的位置,也可以通過攔截請求進行修改
  3. XSS為什麼沒有發揮作用?是否可以繞過?
  4. 怎樣繞過CSP——同源是關鍵
  5. 漏洞的挖掘需要很耐心和仔細,不要著急

以上,是我今天看的兩篇write-up,感覺學習web security還是要多看這種例項,才能對各種漏洞有更清晰的認識和理解,之後希望每天都有時間看一兩篇write-up,加油!