論如何高效的挖掘漏洞[www.freebuf.com]

現在光是一個Web前端就有很多的***手法。而大多數***手法都是基於"客戶端"存在的。但是很少有人注意到,所以就有了本文。

想要去找一個新***手法時,很多人大多都是研究代碼(包括我一開始)。從代碼裏尋找漏洞。這種方法效率比較低下。所以有人喜歡用fuzzing來大規模的測試漏洞的存在(這個方法的確很不錯,範圍廣,測試全,速度快),而大家別以爲我找到一種類似fuzzing那樣的技術,我還沒有那個實力。這個方法只能說會讓fuzzing的速度更快,更加的有效率。

想要挖掘一個新的漏洞,就先搞明白那個程序運轉的原理機制。然後用圖或者文字表達出來。因爲服務端的漏洞比較少,我這裏就不強調了,主要說說客戶端的漏洞,因爲客戶端的問題是最多的。只要發現這個程序運轉的過程中存在和客戶端交互的情況,基本上就可以斷定如果客戶端沒有做好過濾,那麼就有很大的機率存在漏洞。

說了那麼多,不來點事例,可能大部分人都聽不懂。

我這裏拿"url重定向***手法"來說明

什麼是重定向,我這裏舉個例子。

a.cn缺錢了,問b.cn借錢,可是b.cn也沒有錢,但是b.cn知道誰有錢,所以告訴a.cn,c.cn有錢,問他借。然後a.cn問c.cn借錢,c.cn把錢借給了a.cn。然後根據這個寫出原理的順序。

a.cn——b.cn——a.cn——c.cn——a.cn

70651408423167.png

這裏我們可以看到本次程序運轉的原理機制裏,存在有客戶端交互。那我們就把重點放到客戶端a.cn上。

假設我們把b.cn回饋給a.cn的內容改成其他的會怎麼樣。

那麼結果會變成下面這樣。

a.cn缺錢,向b.cn借錢,b.cn沒有錢,但知道c.cn有錢,則告訴a.cn,c.cn有錢,這時候,我們在這裏截取數據包,把內容改成d.cn有錢。然後把數據包放行,那麼a.cn收到了b.cn的回覆,說他也沒錢,d.cn有錢,然後a.cn問d.cn借。d.cn不鳥a.cn。則a.cn被活活餓死。原理順序是

a.cn——b.cn——hacker——a.cn——d.cn——a.cn餓死,c.cn在這次成語運作中並沒有參與進來

87771408423170.png

這樣所造成的後果是a.cn凡是重定向的則全部失敗。

說了那麼多,總結下。

想要高效的挖掘漏洞,最好是把主要盡力放到客戶端上,因爲服務端有未知性,你很難精確的檢測到,而客戶端是對我們開放的,所以這就給我們製造了很多的機會。

最後用Zjmainstay做的比喻來結束本文。

就跟銀行和客戶一樣,很多人願意搶客戶也不願意搶銀行

等錢拿出來了才搶,而不是去銀行搶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章