當前位置:編程學習大全網 - 源碼下載 - 緩充區溢出是怎麽回事,黑客是如何利用它入侵個人電腦的?

緩充區溢出是怎麽回事,黑客是如何利用它入侵個人電腦的?

什麽是緩沖區溢出

單的說就是程序對接受的輸入數據沒有進行有效的檢測導致錯誤,後果可能造成程序崩潰或者執行攻擊者的命令,詳細的資料可以看unsecret.org的漏洞利用欄目 。

緩沖區溢出的概念

堆棧溢出(又稱緩沖區溢出)攻擊是最常用的黑客技術之壹。我們知道,UNIX本身以及其上的許多應用程序都是用C語言編寫的,C語言不檢查緩沖區的邊界。在某些情況下,如果用戶輸入的數據長度超過應用程序給定的緩沖區,就會覆蓋其他數據區。這稱作“堆棧溢出或緩沖溢出”。

壹般情況下,覆蓋其他數據區的數據是沒有意義的,最多造成應用程序錯誤。但是,如果輸入的數據是經過“黑客”精心設計的,覆蓋堆棧的數據恰恰是黑客的入侵程序代碼,黑客就獲取了程序的控制權。如果該程序恰好是以root運行的,黑客就獲得了root權限,然後他就可以編譯黑客程序、留下入侵後門等,實施進壹步地攻擊。按照這種原理進行的黑客入侵就叫做“堆棧溢出攻擊”。

為了便於理解,我們不妨打個比方。緩沖區溢出好比是將十磅的糖放進壹個只能裝五磅的容器裏。壹旦該容器放滿了,余下的部分就溢出在櫃臺和地板上,弄得壹團糟。由於計算機程序的編寫者寫了壹些編碼,但是這些編碼沒有對目的區域或緩沖區——五磅的容器——做適當的檢查,看它們是否夠大,能否完全裝入新的內容——十磅的糖,結果可能造成緩沖區溢出的產生。如果打算被放進新地方的數據不適合,溢得到處都是,該數據也會制造很多麻煩。但是,如果緩沖區僅僅溢出,這只是壹個問題。到此時為止,它還沒有破壞性。當糖溢出時,櫃臺被蓋住。可以把糖擦掉或用吸塵器吸走,還櫃臺本來面貌。與之相對的是,當緩沖區溢出時,過剩的信息覆蓋的是計算機內存中以前的內容。除非這些被覆蓋的內容被保存或能夠恢復,否則就會永遠丟失。

在丟失的信息裏有能夠被程序調用的子程序的列表信息,直到緩沖區溢出發生。另外,給那些子程序的信息——參數——也丟失了。這意味著程序不能得到足夠的信息從子程序返回,以完成它的任務。就像壹個人步行穿過沙漠。如果他依賴於他的足跡走回頭路,當沙暴來襲抹去了這些痕跡時,他將迷失在沙漠中。這個問題比程序僅僅迷失方向嚴重多了。入侵者用精心編寫的入侵代碼(壹種惡意程序)使緩沖區溢出,然後告訴程序依據預設的方法處理緩沖區,並且執行。此時的程序已經完全被入侵者操縱了。

入侵者經常改編現有的應用程序運行不同的程序。例如,壹個入侵者能啟動壹個新的程序,發送秘密文件(支票本記錄,口令文件,或財產清單)給入侵者的電子郵件。這就好像不僅僅是沙暴吹了腳印,而且後來者也會踩出新的腳印,將我們的迷路者領向不同的地方,他自己壹無所知的地方。

緩沖區溢出的處理

妳屋子裏的門和窗戶越少,入侵者進入的方式就越少……

由於緩沖區溢出是壹個編程問題,所以只能通過修復被破壞的程序的代碼而解決問題。如果妳沒有源代碼,從上面“堆棧溢出攻擊”的原理可以看出,要防止此類攻擊,我們可以:

1、開放程序時仔細檢查溢出情況,不允許數據溢出緩沖區。由於編程和編程語言的原因,這非常困難,而且不適合大量已經在使用的程序;

2、使用檢查堆棧溢出的編譯器或者在程序中加入某些記號,以便程序運行時確認禁止黑客有意造成的溢出。問題是無法針對已有程序,對新程序來講,需要修改編譯器;

3、經常檢查妳的操作系統和應用程序提供商的站點,壹旦發現他們提供的補丁程序,就馬上下載並且應用在系統上,這是最好的方法。但是系統管理員總要比攻擊者慢壹步,如果這個有問題的軟件是可選的,甚至是臨時的,把它從妳的系統中刪除。舉另外壹個例子,妳屋子裏的門和窗戶越少,入侵者進入的方式就越少。

黑客主要先從微軟漏洞公布表上或者0days上找到漏洞,再根據漏洞編寫溢出程序(好多都自帶掃描功能)包括本地提權溢出,遠程提權溢出.編好後,先用那個掃描壹下有漏洞的主機,然後再用它溢出獲得權限,控制目標主機.

  • 上一篇:怎麽能夠使安卓上的字體渲染有iphone的效果
  • 下一篇:單片機 匯編語言 函數HEX_ASC代碼如下。求註釋,請問是實現什麽功能啊?求註釋 求註釋,壹定采納
  • copyright 2024編程學習大全網