dedecms分頁,黑客為什么可以做到無需知道源碼的情況下找出系統漏洞?
關注我,帶你以技術思維看世界~
作為一個7年老程序員,來強答一波。
找漏洞的過程題主這個問題其實是從一個慣性思維來提出的。為什么呢?
因為一個新的漏洞其實不是通過某種方式先知道這里有個漏洞之后再利用它來攻擊的,而更像是“蒙”的。是通過不斷的調整輸入的數據和輸入方式,直到出現“意料之外”的情況,這才是找漏洞的真正過程。
很多黑客雖然算不上是coding高手,但是對于一個程序是如何編寫出來的,還是有基本的認識的。借此,他其實就知道自己如果發起一個請求可能會怎么樣被處理,然后剩下的與編寫這部分代碼的程序員之間的博弈,這個過程有點像兩個人下圍棋。
一般黑客會將自己用過的“攻擊方法和攻擊數據”整合到自己的一個“武器箱”中,后續就通過程序化的方式自動去運行攻擊,自己則是觀察整個攻擊過程,看看能不能發現新的機會。
這些才是黑客的工作過程。
視角有什么區別嗎?黑客和軟件開發者的視角肯定是不同的,而且正好相反。
軟件開發者要做的事是什么?就是如何把一個程序寫“正確”,符合設定的預期。你可以這樣來理解,好比是帶著一個“參考答案”和“解題思路”去寫代碼。
但是我們知道,任何事物都有兩面性,或者說不是“完美”的,“解題思路”也是如此。
更何況,“解題思路”的目的是如何變得“正確”,而不是“不正確”,從思維慣性上就不會考慮那些讓它變得“不正確”情況。否則不是和自己要完成的事背道而馳么。
黑客的視角與軟件開發者正好相反,倒是和常見的「測試工程師」的視角比較接近。就是通過逆向思維來想盡辦法把這個程序搞的“不正確”。
具體的過程就是第一部分內容講的那些。
希望對你有所幫助:)
歡迎在留言區補充或者闡述不同觀點,與我交流。
如果覺得回答對你有所幫助的話給我點個「贊同」并「關注我」吧,支持我的創作。
謝謝你的舉手之勞~
了解Z哥更多,歡迎搜索微信公號:跨界架構師。讓我們一起為了理想的生活而奮斗。我還會不定期的送出粉絲福利哦。內容包括:架構設計丨分布式系統丨產品丨運營丨個人深度思考。