學習筆記裡的存貨(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->攻擊
簡單拋磚引玉,希望可以幫助到大家.