零基礎如何學習挖漏洞?

想學習挖漏洞,應該怎麼做起?


我是先看漏洞公告,2002年之前綠盟漏洞庫中的每一條我都看過,在看的過程中理解漏洞。然後看別人的漏洞分析文檔,在看的過程中學習調試和彙編指令。最後學編程。


先學語言(code),然後分析以往漏洞,邊分析邊思考,再嘗試挖掘


謝邀。國內學習漏洞挖掘習慣先進行所謂的「打基礎」,啃各種編程書,然後再去學習漏洞挖掘,這樣的問題在於無法控制好學編程的程度,而且先單純的學習編程也是極其枯燥的,可能很多人無法堅持。下面來說下國外同學一般得學習過程:

既然我們不是要去深造編程技術,而主要為了學習漏洞挖掘。我建議首先先把編程打個底子,底子的概念是:「掌握該語言的基本語法,常用函數,寫幾個demo即可。」有了底子再去看以前的漏洞分析文章,看的過程中會發現吃力的點,這樣再有目的的去跟進相關的編程技術點。而不是先一味的去啃編程書。

比如學習PHP漏洞挖掘:

先掌握php基本語法,常用php函數,對常用的php函數寫一些demo。然後開始看以前php應用漏洞分析的文章,開始的一些基本漏洞比如簡單的純get,post沒有intval或者強制轉換造成的sql注入,比如沒有htmlspecialchar造成的簡單xss。看這些基本的東西我們之前打的底子就完全夠用了。

然後我們看一些較高級漏洞的利用,比如各種變數覆蓋漏洞,比如unserialize造成的代碼執行,我們開始看的時候可能會覺得吃力。那就需要回過頭去先看看extract等函數具體用法,for each對$_REQUEST進行變數生成的過程是怎樣的,unserialize函數的執行流程是怎樣的。然後再去看之前的技術文章就會豁然開朗了。這只是基本的php漏洞挖掘,熟練了之後嘗試著去看一些框架的漏洞分析,比如thinkphp,這些又涉及到OOP的相關知識,那麼再回過頭去學習PHP OOP編程,然後再繼續。如此循環下來,邊學習漏洞挖掘邊學習編程,這樣的效率和效果都要比先單純的啃編程書要強很多。這也是國內外技術人員做研究的一大差異,國內喜歡先學習理論基礎,而國外注重先應用,應用的過程中遇到困難再去學習理論基礎。

希望答案對題主有幫助:)

=========================================

FreeBuf黑客與極客(http://www.freebuf.com)

微信公共號(黑客與極客):

http://weixin.qq.com/r/MnUZAQrE-leBrU5i9yAg (二維碼自動識別)


師傅帶進門,修行靠個人。有人想學?私信我看看。

如果一直找不到師傅的話,還是好好找個語言先學習,譬如python,github里有很多現成的工具,搭個環境就可以開始掃描驗證了。


我都是跟著 @redrain root 師傅學~


看了大家的答案,都提到了基礎,比如先搞好基礎,然後再嘗試挖掘,不過比如大牛黑哥跟tombkeeper都提到了一點,分析學習過往的漏洞。

首先分析下,黑哥跟tombkeeper都是大牛,挖過很多漏洞,所以講的話是否有道理就不用我說了。除此外,我比較贊同Pnigos的觀點,在結合黑哥跟tombkeeper的答案基礎上做了詳細的解釋。

在我看來,一定的code基礎是肯定需要的,如果連一點基礎都沒有,真的別談說漏洞挖掘,更別說學好這門技術了。舉個例子,你要找XSS,但是你連Javascript都不知道,請問你該怎麼挖呢?怎麼去構造payload(有效負載,簡單說就是利用代碼)?XSS的彈窗等都是通過Javascript寫出來的,你都不懂,怎麼寫?XSS叫做跨站腳本攻擊,明確的指出這是通過腳本來實現的。所以不管如何,如果要學習漏洞挖掘,起碼需要一定的code基礎。

其次,就如黑哥跟tombkeeper說的,分析學習過往的漏洞。通過分析過往的漏洞,可以很好學習別人漏洞挖掘的思路,對於自己學習挖掘漏洞是很有用處的。在國內,比如wooyun,一些公布的漏洞是可以看到詳情的,看看漏洞是怎麼被發現的,漏洞的原理又是什麼,這都是有很大幫助的。

---------------------

歡迎關注微信公眾帳號及知乎專欄

http://zhuanlan.zhihu.com/fooying

http://weixin.qq.com/r/5UMHH9-EH4JgrZt89xb3 (二維碼自動識別)


經常關注一些漏洞平台,國內外有好多呢,他們的挖洞過程就是他們在面對一個問題時的思路,先形成一個漏洞思想,多多領會,多多嘗試,看到這麼多新奇的東西,應該想要嘗試吧,只有無藥可救的人才會總是羨慕別人有多牛逼,而從不動手。有人說」可我不會啊我沒基礎沒學過啊「,不會的,要搜索引擎幹嗎,就是讓你解決問題的,去搜啊,去學啊,多白痴的問題他都會給你很多答案的。然後用敏銳的眼光跟進最新漏洞,這樣掌握的漏洞類型就積累起來的,經過搜索搞清了原理,在經過嘗試積累了經驗,再加上多看一些poc掌握了黑客思想後,自然就會挖了。


「整就牛!」


先打基礎


基礎很重要啊。


各種工具要熟用,各種語言要明了;

打好編程基礎很重要,弄懂邏輯關係再行動。


同樣在學習中,百度基本可以解決我目前在學習過程中遇到的所有問題。


沒有編程基礎的網路人員求帶,算了還是網管求帶。。。


看了大家的評論,自己也有些想法。如@Fooying所說,首先要有基礎(如二級制漏洞分析,至少需要知道如何調試),知道一些常用語言(比如web漏洞要了解JavaScript,php)的編碼。之後,我們就要知道各種漏洞原理,可以通過分析烏雲或者freebuffer上面公布出來的漏洞,看看別人是如何挖洞的。

其實有了編碼基礎之後,最主要的就是有思路,知道大概朝那個方向去分析,這些思路的來源就是通過分析各種漏洞挖掘過程,這是積累的過程,需要強大的毅力堅持,你不可能剛開始學就可以挖到很牛逼的漏洞。

我現在也在學習如何挖洞,希望自己能夠堅持每天分析一個漏洞的挖掘過程。


有沒有人可以帶一下我


推薦書記《模糊測試與漏洞挖掘》 做代碼審計跟蹤敏感產量與函數介面。代碼審計工具 畢竟是工具 審計代碼有力,一個精銳的代碼審計團隊


先成為腳本小子


我都是跟 @Evi1m0 學習的


推薦閱讀:

滴滴順風車安全嗎?
高速上占著超車道跑時速60公里的老哥老姐究竟是怎麼想的?
化工廠的防爆設施有哪些?
如何看待姚晨在商場加裝防護網的建議?
什麼情況下容易被拐賣?如何避免被拐賣?

TAG:網路安全 | 信息安全 | 安全 | 漏洞 |