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