1day漏洞反推技巧實戰(1)

飄渺紅塵✨發表於2021-08-14

    學習筆記裡的存貨(1)

    以前看了一篇推特老外做賞金獵人的文章,感觸有點深,作者沒有寫相關漏洞分析,只是說了自己挖了多少個漏洞,這裡簡單的分析下:

    1day漏洞在很多時候至關重要,不管是在紅藍對抗,還是在賞金獵人生涯中,他佔據著很大的地位,關於1day概念,這裡不再過多描述.

  開始我們快樂的全過程學習:

    發現某個cms,他是nodejs開發的,cms是Etherpad Lite,通過百度 google搜尋相關漏洞詳情:

  

 

 

  隨便找幾個開啟連結:

    

 

 

   會發現一件事情,你根本看不到漏洞細節,全是漏洞描述資訊

   使用中文搜尋:

  

 

 

 

 

  

 

 

 

 

  

  也是隻有描述沒有漏洞細節

 

   而你用這種方法去搜尋一些國內比較知名的cms,如phpcms漏洞:

  

 

 

 

 

  

 你可以搜尋到很多,並且除了描述資訊,還有直接利用的漏洞poc和exp,你可以通過百度/谷歌獲取到漏洞細節,直接利用漏洞.  

 

  現在繼續回到Etherpad Lite這個cms系統,很顯然Etherpad Lite公開的漏洞描述,並沒有公開poc,說明是1day,需要我們去反推:

 

   讓我們再來一次,再次谷歌搜尋:

  

  

 

  

  這些都是cve列表,記錄著產品的漏洞,我們隨便找到一個開啟,我以第一個為例:

 

    

 

   發現很多漏洞,點一個xss進去:

  

 

 

 

   會發現一個連結:點選連結部分:

  

 

 

  

https://github.com/ether/etherpad-lite/commit/5879037ddca4ab9a4002adf90fc7ce6c9f82f01b

  開啟連結,通過兩邊檔案的程式碼對比,就可以看出哪裡出現的安全問題:

  

 

 

  

這樣我們就可以看到區別,修復後的檔案,使用padutils.escapeHTML去處理修復,這樣我們追蹤到問題程式碼後,對我們唯一的難點就是獲取完整程式碼,跟蹤路由地址,往上看檔案修復:

  

 

 

 

作者說漏洞於2019年10月19日完成修復,那麼怎麼更快確認哪些版本的Etherpad Lite受影響呢?通過這裡檢視:

  

 

 

  這些列舉出來的是已經修復的,而1.8.0-beta.1之前都是未修復的,開啟releases看下:

    

 

 

的確是,1.7.5版本他的釋出時間是2019年1月26,1.8.0-beta.1的釋出時間是2019年11月3.

 下載1.7.5版本的專案看看便知:

 通過修復檔案獲取到漏洞路徑:src/templates/pad.html:

  

 

  通過程式碼發現,只要傳入url資料,帶入到box.innerHTML 即可觸發xss,url沒做處理

  下載1.8.0-beta.1,檢視相關程式碼,可以發現已經修復了:

  

 

 

 

 

   同理其他漏洞/其他產品漏洞也可以通過這種方法發現漏洞問題是什麼.

  光光是知道哪個檔案存在漏洞還不行的,這裡簡單的梳理下,怎麼做才能真正利用上漏洞:

  大致思路如下:    

獲取存在安全問題專案原始碼->摸清楚路由地址->根據修復之前的程式碼反推安全問題->構造漏洞poc->攻擊

   簡單拋磚引玉,希望可以幫助到大家.

相關文章