打開懸賞板塊,懸賞依舊是五花八門的,這回葉新晨都只專挑一萬左右的接,因為一萬左右的懸賞,葉新晨憑借著豐富的經驗知識,最遲在兩三個小時里面就能解決。
所以現在為了穩妥,葉新晨打算積少成多。
隨手接了一個一萬的懸賞。
然后葉新晨就看了起來,一開始看這些花花綠綠的代碼有點頭禿,現在葉新晨覺得自己已經在開始慢慢的適應了。
葉新晨也是憑借著上位者的壓制,一目十行的看了起來,當然如果遇到稍微不正常的代碼,葉新晨就會停止這種速度,仔細的看。
半小時之后,葉新晨還沒有找到,不過他也不慌張,畢竟時間還長著呢。
一般情況下,找漏洞都是沒有源碼的,因為軟件不是你的,如果把源碼給你了,相當于把自家后門沒關門告訴你了,那你豈不是為所欲為為所欲為?
而且,BUG漏洞的話常見的有操作系統漏洞、服務器漏洞、服務器軟件漏洞、網頁系統漏洞。
先說軟件方面的漏洞,不是網頁系統的。一般的漏洞大家聽過的應該是緩沖區溢出漏洞,什么意思呢?
就是存變量的緩沖區超過了最大大小,文本就會沖掉軟件本來的代碼,造成錯誤。
緩沖區是內存中存放數據的地方。在程序試圖將數據放到及其內存中的某一個位置的時候,因為沒有足夠的空間就會發生緩沖區溢出。
緩沖區溢出就好比是將十升水放進只有五升容量的桶里。很顯然,一旦容器滿了,余下的部分就會溢出在地板上,弄得一團糟。
舉個例子,登錄系統(不管是網頁還是軟件、ftp等),都要輸入帳號密碼,進行身份認證,系統接受你輸入的帳號密碼,要保存到一個變量里(通常是堆棧),和正確的帳號密碼比較,看你是否是合法的用戶。
如果我定義一個變量用來存放你輸入的密碼(假設最多1000位密碼),一般人的密碼肯定到不了1000位,那么程序就會正常運行,如果有別有用心的人輸入了2000位,多余的'1000個字符由于沒有位置放,就會沖掉正常的指令,程序就會崩潰。
因為程序最終都會編譯成機器碼,一行一行的執行,多余的1000個字符沖掉正常的指令后,機器不能識別,就會報錯退出,把這1000個字符也換做編譯后的機器碼,程序執行到這里以后,就執行我們的代碼了,這就是緩沖區溢出漏洞。
所以不管是操作系統還是瀏覽器,只要接入互聯網后,就要按照一定的協議收發數據,只要接收的數據沒有進行邊界檢查,就可能造成溢出漏洞。
而為葉新晨他們這樣找漏洞的人就是這樣,先使程序崩潰,找到有可能有漏洞的地方,再逐語句調試,這是個非常復雜的過程,不過最終都能夠找到合適的shellcode使對方機器執行我們的指令。
所以繼續的再用半個小時尋找,葉新晨也是找到了毛病所在。
說實話,這個漏洞又是葉新晨依靠經驗找出來的漏洞,難度倒是不難,但是如果沒有相當豐厚的經驗,真的是不太好找的。
這個問題就是程序代碼邏輯處理問題,在這個程序代碼邏輯節點出現了小BUG,只需要將開源碼的程序邏輯重新編輯一下就行。
所以葉新晨也是非常愉快的將這個懸賞提交完成,畢竟再次的一個達不溜向他招手,自然而然的葉新晨還是覺得很開心的。
而這個時候,王曉雪也是出現在了葉新晨的眼前,“老公,你回來了怎么不叫我呢?你餓不餓啊?”
葉新晨將王曉雪拉到自己的腿上坐著,親了一口,“餓了,我想吃你!”