Pwn新手應該如何開始挖掘二進位漏洞(如UAF,stack overflow)?
RT,這裡的新手是指已經熟悉在實驗環境下/CTF的緩衝區/堆溢出,UAF,DEP/ASLR Bypass,但是實戰還沒經驗
普遍來說二進位漏洞挖掘的方法一般是代碼審計或者fuzz,和審計有關的可以看看經典書籍The art of software security assessment,關於fuzz也有一堆資料可供學習,在github上就能找到很多fuzz工具,比如 demi6od/ChromeFuzzer MozillaSecurity/funfuzzfuzzbunch/fuzzbunch 之類的。二進位漏洞挖掘的目標一般是內核、用戶態高許可權進程或者瀏覽器,最好先確定一個目標,然後進一步了解相關的知識,比如關注每個月安全公告:https://source.android.com/security/bulletin/,Apple 安全性更新,關注一個方向的安全問題,學會從patch、diff反推漏洞。
漏洞書籍:mordern windows exploit development。這本也有中文翻譯版,在看雪論壇&<href="https://whttp://ww.baidu.com/link?url=bv1jAabGqxbBC7qnnq9eQKHYP5sjbmznerN_EWQguMKhPjdkHw9S-EH7M05ddQLRhWDYJiTKaN7tTnn-jkvEkqwd=eqid=fe02ee9400036d590000000359a78cb3">現代化Windows漏洞利用程序開發&>。
實戰漏洞:
https://sensepost.com/blog/
FuzzySecurity | Tutorials (中文部分翻譯:http://bbs.pediy.com/thread-206857.htm)
學習裡面涉及到的實際漏洞,實戰操作一遍,同時也可以考慮別人是怎麼發現的。
這些做完後,接下來就看你做的認不認真了。我相信你學完後一定是一個能手了,之後漏洞挖掘,可以考慮先從開源軟體入手,先復現別人發現漏洞的過程,然後自己再嘗試發現新漏洞。之後再去剛無源碼的程序。
漏洞挖掘是相通的,不分平台。至於Linux的平台的利用,它的防禦措施比windows少太多了,你多看幾個類似的知名漏洞利用也就差不多了。
就我最近幾天手頭搞一個rce的經歷和看實驗室大佬挖洞的手法來看。新手上路基本上有源碼的拿頭審,沒源碼的拿頭逆。基本上是頭很硬,7*10甚至12搞出來的。當然也有一些優雅的比如fuzzy之類的方法。不過即使如此,硬剛還是少不了的。PS:確定目標和攻擊面是先決條件,不然就是沒頭蒼蠅了
謝大大大大佬邀請
本寶寶不是專門挖洞的,只是說一下自己的見解
補充一下匿名的回答,也當作是一種思路
首先你要找個方向,比如…影音播放
然後去看看這些程序有什麼輸入…比如他認.avi格式
然後去看看avi格式的解析流程,自己動手實踐一下,就用最樸素最一般的方法
再去各大產品上看看他們的流程和你的有什麼不一樣,在不一樣的地方有沒有問題
這個就是廣撒網了(滑稽我當然是沒資格回答這個問題,不過不少前輩已經提過這方面的東西。
多分析總結已有的漏洞。可以從afl開始學一學s2e掌握好angr當然,ida不能落下
推薦閱讀: