1. 程式人生 > >如何入門漏洞挖掘,以及提高自己的挖掘能力

如何入門漏洞挖掘,以及提高自己的挖掘能力

0x01:前言

      大家好我是米斯特團隊的一員,我的id香瓜,我們團隊在這次i春秋第二次漏洞挖掘大賽中,包攬了前五名,我key表哥一不小心拿了一個第一,導致很多人來加他好友問他,如何修煉漏洞挖掘能力,我今天幫大家解答一下這個疑問,哈哈哈。
      漏洞挖掘是安全圈的一個核心之一,但是隨著各大廠商安全意識的增強,以及各類waf的出現。一些像sql注入,檔案上傳,命令執行這些漏洞也不是那麼好挖了。而面對大的廠商,就像各種src,資產豐富,業務龐大,對於剛剛學完基礎開始著手漏洞挖掘的小白來說,拿到手後,就顯得有些迷茫(就比如我)。
但我是幸運的,我很前段時間加入了米斯特安全團隊,在團隊表哥的幫助和指導下,我開始不斷學習,不斷看漏洞詳情,逐漸開始有了一些小的思路,而不像一開始那樣迷茫。這裡再次感謝米斯特的所有人,希望團隊可以走的更遠。米斯特萬歲!
      這篇文章是我最近的漏洞挖掘思路的一個總結,分兩個部分,一,漏洞挖掘型別總結,二、個人提高漏洞挖掘能力的方法。適合給迷途中的小白指路。希望大家多多支援。也歡迎大家來分享補充你們的漏洞案例。

0x02: 漏洞挖掘型別總結

      如果你剛剛好是一個剛剛學完基礎的小白,如果你剛剛好沒有參加各種培訓,完全自學。那麼你的漏洞清單可能是這樣的。
        暴力破解漏洞
        sql注入漏洞
        命令執行漏洞
        xss漏洞(跨站指令碼)
        csrf漏洞(跨站偽造請求)
        xxe漏洞
        檔案上傳漏洞
        檔案包含漏洞
        各cms的公開漏洞
      沒錯差不多就是這樣的。當然也有可能一些沒用寫到,因人而異。
      如果你有幸看到一個大佬的漏洞清單。那麼有可能除了上面那些,還多了下面這幾項
        邏輯漏洞
        ssrf漏洞
        資訊洩露
        js檔案可能存在的未授權訪問
        組合漏洞
        ……
      然而這些也只是一部分,不過我不是大佬,不過歡迎大佬補存,下面我就單講一下我補充的幾種漏洞型別吧。

0x03: 漏洞型別詳解

      正式開始前插一條,我之前對漏洞的定義有一點點誤解,以為只有上面列表上的才是漏洞,其實不然,只要可以給廠商帶來損失的全都是漏洞。邏輯漏洞也是基於這條。回顧一下自己的挖掘過程,其實漏掉了很多。

邏輯漏洞

      邏輯漏洞也是一個經久不衰的話題,不過邏輯漏洞並不像前面幾種漏洞,可以用掃描器去掃,邏輯漏洞目前,據我所知是沒有一個掃描器可以敢說自己能掃到邏輯漏洞的。或許有的廠家敢說自己沒有一個sql注入,但是沒人敢說自己沒有邏輯漏洞(我想也沒有廠家敢說自己沒有sql注入吧,哈哈哈)。而且,由於現在waf,和防火牆的逐漸完善,sql注入,上傳等漏洞,也越來越難以查詢和利用,而邏輯漏洞則不存在這種問題。
      何為邏輯漏洞,就是由於開發者在開發過程中,由於程式碼邏輯不嚴,而造成的一系列可以被攻擊者加以惡意利用的漏洞。而邏輯漏洞也是一類漏洞的總稱。最常見的邏輯漏洞可以分為以下型別
        驗證碼爆破
        支付漏洞
        註冊/忘記密碼處邏輯漏洞
        越權
        ……
      舉個例子最為常見的就是以低價購買任意價格的東西的支付漏洞,或者找回密碼流程控制不嚴格,導致的可以修改任意使用者的登陸密碼,還有越權,越權檢視他人訂單,越權檢視他人個人資訊等等。
      當然這只是一部分,我這裡也只是一個引子,具體漏洞的原理以及介紹大家可以去自行搜尋關鍵字,有很多大佬的文章就寫得比較好,不然我這篇文章就要寫個幾十頁了。一些漏洞詳情大家可以去看烏雲。

資訊洩露

      資訊洩露漏洞顧名思義就是資訊洩露,資訊洩露也分好多種,如。
        原始碼洩露
        使用者資訊洩露
        員工資訊洩露
        等等
      對於原始碼洩露,大家可以去github上找,很多程式設計師會把原始碼開放在github上,甚至有的人使用者名稱密碼都不改的,資料庫連線密碼啊直接存在原始碼中,當然想我這種菜雞找到這種原始碼洩露就直接提交了,有能力的大佬,直接就是一波審計,然後嘿嘿嘿。而對於員工資訊洩露,可以在收集資訊的時候收集賬號,然後放在社工庫跑跑,或者記錄下來賬號用來爆破。

組合漏洞

      組合漏洞是一個可以吧低危漏洞變成高危漏洞的一個神奇的東西。比如你找到一個xss漏洞和一個csrf漏洞,如果兩個漏洞單獨提交,或許是兩個低危,或許是兩個忽略。但是如果你把你的xss和csrf組合起來就有可能變成一個高危漏洞,打組合拳,key師傅組合拳打的很厲害,向師傅看齊,key師傅給我說,挖到低危不要著急提交,存起來,萬一某一天碰見一另一個漏洞,組合一下,就可以一發入魂了。
說個小技巧,如果你想要詳細的漏洞列表,可以去多收集幾家src的漏洞說明手冊,然後去重,就是一份完美的漏洞列表。

0x04:個人提高漏洞挖掘能力的方法

這一節講一下挖掘漏洞應該如何提高和應該有哪些好的習慣。
        細心
        耐心
        會看
        會記
        懂收集
        勤動手
        愛學習

細心

      細心放在第一位,是因為細心真的是非常非常非常重要,我有幸請教過很多大佬成功的祕籍,他們告訴我的第一個詞語就是細心,正所謂心細則挖天下。很多漏洞都是需要細心才可以發現,不放過資料包中的任何一個引數,不放過網站的任意一個點,我曾問過團隊的小石師傅,如何挖掘那些很多人都挖過的src,這麼多人都挖過,一些功能點我還要在測一遍嗎。小石師傅並沒有給我直接回答,而是講了他一個漏洞的挖掘經歷,那是挖美團的時候,小石師傅直接主站開始挖,並且在個人資料一個很明顯的地方,挖到了一個儲存xss的高危漏洞。所以,在我們進行漏洞挖掘的時候,不要放棄任何一個可能存在漏洞的地方,每個人都有不同的挖掘方式,網站這麼大,總會有幾個漏測的地方,並且一個漏洞修復了,誰敢保證,修復完了,就不能再修一個漏洞出來了呢。

耐心

      耐心同細心一樣,可以說是一對cp。如果你本身就足夠信心,那麼我想你的耐心也不會差。如果說細心是你漏洞挖掘的利劍,那麼耐心就是你的磨刀石,很多時候,碰到一個破站盯幾天才能挖到一個漏洞,你堅持下來了就是勝利者,有人說挖洞,也是個運氣活,運氣好了隨隨便便就是幾個高危,運氣不好,幾天也挖不到一個。雖然有一定的道理,但是當你的能力足夠強,有了自己的套路,想挖漏洞還是輕鬆加愉快。

會看、會記

      會看,會記。這個就簡單了,就是要多看多記,多看漏洞詳情,多看技術文章,漏洞詳情可以在烏雲看,還有網上很多人分享的案例,主要是烏雲。看完就要記,要讓你看的東西真正的成為你的東西,如果你面對一個廠商,還是有無從下手的感覺,就去烏雲看漏洞詳情,一個一個看,然後把漏洞出現的位置,以及使用的一些技巧記下來,成為屬於自己的漏洞挖掘手冊,這也是我最近在做的一個事情。還有一些好的文章,好的技巧,或許你一時半會也用不到,但是你要學會記,總有用到的一天。

懂收集

      key師傅說過,漏洞挖掘說白了就是一個fuzz的過程,而fuzz最關鍵的是什麼,就是一本高效的字典,沒錯我們要學會收集字典,想公開的字典有fuzzdb,是一個非常好的fuzz字典合集,當然我們在收集他人字典的同時我們也要自己收集字典,曾經看到一個大佬,蒐集了github大量的開發專案的路徑,然後組成字典。我也不要求小白可以寫程式然後自動收集字典,但是,我們在平時的漏洞挖掘過程中,遇到的一些東西還是要多多的去收集一下,逐步慢慢的形成自己的一本專用字典,絕對可以提高你的漏洞挖掘效率。當你有一本自己收集的字典時,相信你也成為一名大佬了。

勤動手

      當你看了大量漏洞,記了大量筆記,這個時候,我相信你最需要的,就是實戰,實戰是可以把所學所看融會貫通的最快方法,沒有之一,只有實戰可以鍛鍊自己的挖洞能力,和效率。看到新的漏洞多去搭建環境復現,這也是對能力的一種提升。

愛學習

      學習,學無止境,又是我key師傅說過,知識面有多廣,決定了你可以挖多少漏洞,多學習,至於學什麼呢,學js,學程式碼審計,學開發,學json,等等等等,有的時候真的感覺,你要成為一個開發人員,瞭解詳細的資訊傳輸和交換原理,才可以挖到更加深入的漏洞。如果有一天你感覺挖不到漏洞了,不如放下手頭的一切去學習吧,小夥子。

0x05:總結

      此篇文章獻給,和我一樣迷茫的小夥伴,希望大家可以越走越遠。最後給你們一個建議,加一個好團隊,學習氛圍也很重要的。