• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            緩存溢出(緩存溢出攻擊)

            更新時間:2023-02-28 19:45:39 閱讀: 評論:0

            我電腦提示我"緩存溢出"怎么辦啊?高手教教我

            你把菜單欄里“工具”—“配置”里面的第一項“常規(guī)”里的“磁盤緩存”設小些試一下!
            設小些,一般是1024KB或是2048KB,和文件長度沒有關系的,這個“緩存”的意思就是每當下載1024KB或2048KB的時候再存到你的硬盤里,之前是存在緩存里的。
            些Sasr代碼(可以說是插件或木馬之類)穿過未打補丁的防火墻,到達沒有防護的服務器。當代碼進入沒有防護服務器的內(nèi)存時,它馬上執(zhí)行緩存器溢出,將服務器系統(tǒng)級的控制權交給了遠端的主機,實現(xiàn)在企業(yè)網(wǎng)內(nèi)的遠程控制。

            卡巴六正是針對Web瀏覽器或者其他最終用戶網(wǎng)絡應用的的漏洞防御,并可以檢測和防止受保護計算機上運行的任何應用遭受緩存溢出攻擊,防治計算機收到傷害,你拒絕的時候沒有“以后都這樣操作”的提示嗎?如果沒有,建議不要瀏覽該網(wǎng)頁了!

            溫馨提醒:上網(wǎng)的時候最好不要用IE上網(wǎng),因為80%病毒都是針對IE的(也就是WINDOW),如果使用第三方面的瀏覽器,將會大大降低中毒的幾率!

            緩沖區(qū)溢出的基本原理是什么

            緩沖區(qū)溢出的原理:

            通過往程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達到攻擊的目的。造成緩沖區(qū)溢出的原因是程序中沒有仔細檢查用戶輸入的參數(shù)。例如下面程序:

            void function(char *str) {

            char buffer[16];

            strcpy(buffer,str);

            }

            上面的strcpy()將直接吧str中的內(nèi)容copy到buffer中。這樣只要str的長度大于16,就會造成buffer的溢出,使程序運行出錯。存在象strcpy這樣的問題的標準函數(shù)還有strcat(),sprintf(),vsprintf(),gets(),scanf()等。

            漏洞:

            緩沖區(qū)溢出攻擊的目的在于擾亂具有某些特權運行的程序的功能,這樣可以使得攻擊者取得程序的控制權,如果該程序具有足夠的權限,那么整個主機就被控制了。一般而言,攻擊者攻擊root程序,然后執(zhí)行類似“exec(sh)”的執(zhí)行代碼來獲得root權限的shell。為了達到這個目的,攻擊者必須達到如下的兩個目標:

            在程序的地址空間里安排適當?shù)拇a。

            通過適當?shù)某跏蓟拇嫫骱蛢?nèi)存,讓程序跳轉(zhuǎn)到入侵者安排的地址空間執(zhí)行。

            可以根據(jù)這兩個目標來對緩沖區(qū)溢出攻擊進行分類。

            以上內(nèi)容參考:百度百科-緩沖區(qū)溢出


            電腦緩沖區(qū)溢出怎么解決

            緩沖區(qū)溢出是指當計算機程序向緩沖區(qū)內(nèi)填充的數(shù)據(jù)位數(shù)超過了緩沖區(qū)本身的容量。溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。理想情況是,程序檢查數(shù)據(jù)長度并且不允許輸入超過緩沖區(qū)長度的字符串。但是絕大多數(shù)程序都會假設數(shù)據(jù)長度總是與所分配的存儲空間相匹配,這就為緩沖區(qū)溢出埋下隱患。操作系統(tǒng)所使用的緩沖區(qū)又被稱為堆棧,在各個操作進程之間,指令被臨時存儲在堆棧當中,堆棧也會出現(xiàn)緩沖區(qū)溢出。 當一個超長的數(shù)據(jù)進入到緩沖區(qū)時,超出部分就會被寫入其他緩沖區(qū),其他緩沖區(qū)存放的可能是數(shù)據(jù)、下一條指令的指針,或者是其他程序的輸出內(nèi)容,這些內(nèi)容都被覆蓋或者破壞掉。可見一小部分數(shù)據(jù)或者一套指令的溢出就可能導致一個程序或者操作系統(tǒng)崩潰。

            什么是緩沖區(qū)溢出

            緩沖區(qū)溢出是指當計算機向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時超過了緩沖區(qū)本身的容量溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上,理想的情況是 程序檢查數(shù)據(jù)長度并不允許輸入超過緩沖區(qū)長度的字符,但是絕大多數(shù)程序都會假設數(shù)據(jù)長度總是與所分配的儲存空間想匹配,這就為緩沖區(qū)溢出埋下隱患.

            操作系統(tǒng)所使用的緩沖區(qū)又被稱為堆棧. 在各個操作進程之間,指令會被臨時儲存在堆棧當中,堆棧也會出現(xiàn)緩沖區(qū)溢出.

            緩沖區(qū)溢出有時又稱為堆棧溢出攻擊,是過去的十多年里,網(wǎng)絡安全漏洞常用的一種形式并且易于擴充。相比于其他因素,緩沖區(qū)溢出是網(wǎng)絡受到攻擊的主要原因。

            例如:計算機在內(nèi)存中存儲了所有的東西,包括程序、數(shù)據(jù)和圖片。如果計算機要求用戶輸入8位字符密碼卻接收到了200位字符的密碼,多出來的字符可以寫在內(nèi)存中的其他地方。但事實并不是這樣。這就是個小錯誤。

            _______________________________________________________
            緩沖區(qū)溢出的處理

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

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

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

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

            什么叫緩沖區(qū)溢出

            緩沖區(qū)溢出
            緩沖區(qū)是內(nèi)存中存放數(shù)據(jù)的地方。在程序試圖將數(shù)據(jù)放到計算機內(nèi)存中的某一位置,但沒有足夠空間時會發(fā)生緩沖區(qū)溢出。

            緩沖區(qū)是程序運行時計算機內(nèi)存中的一個連續(xù)的塊,它保存了給定類型的數(shù)據(jù)。問題隨著動態(tài)分配變量而出現(xiàn)。為了不用太多的內(nèi)存,一個有動態(tài)分配變量的程序在程序運行時才決定給他們分配多少內(nèi)存。如果程序在動態(tài)分配緩沖區(qū)放入太多的數(shù)據(jù)會有什么現(xiàn)象?它溢出了,漏到了別的地方。一個緩沖區(qū)溢出應用程序使用這個溢出的數(shù)據(jù)將匯編語言代碼放到計算機的內(nèi)存中,通常是產(chǎn)生root權限的地方。單單的緩沖區(qū)溢出,并不會產(chǎn)生安全問題。只有將溢出送到能夠以root權限運行命令的區(qū)域才行。這樣,一個緩沖區(qū)利用程序?qū)⒛苓\行的指令放在了有root權限的內(nèi)存中,從而一旦運行這些指令,就是以root權限控制了計算機。總結一下上面的描述。緩沖區(qū)溢出指的是一種系統(tǒng)攻擊的手段,通過往程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達到攻擊的目的。據(jù)統(tǒng)計,通過緩沖區(qū)溢出進行的攻擊占所有系統(tǒng)攻擊總數(shù)的80%以上。造成緩沖區(qū)溢出的原因是程序中沒有仔細檢查用戶輸入的參數(shù)。例如下面程序:

            example0.c
            -----------------------------------------------------------
            void function(char *str) {
            char buffer[16];

            strcpy(buffer,str);
            }
            -----------------------------------------------------------

            上面的strcpy()將直接把str中的內(nèi)容copy到buffer中。這樣只要str的長度大于16,就會造成buffer的溢出,使程序運行出錯。存在象strcpy這樣的問題的標準函數(shù)還有strcat(),sprintf(),vsprintf(),gets(),scanf(),以及在循環(huán)內(nèi)的getc(),fgetc(),getchar()等。在C語言中,靜態(tài)變量是分配在數(shù)據(jù)段中的,動態(tài)變量是分配在堆棧段的。緩沖區(qū)溢出是利用堆棧段的溢出的。一個程序在內(nèi)存中通常分為程序段,數(shù)據(jù)端和堆棧三部分。程序段里放著程序的機器碼和只讀數(shù)據(jù),這個段通常是只讀,對它的寫操作是非法的。數(shù)據(jù)段放的是程序中的靜態(tài)數(shù)據(jù)。動態(tài)數(shù)據(jù)則通過堆棧來存放。在內(nèi)存中,它們的位置如下:

            /――――――――\ 內(nèi)存低端
            |程序段|
            |―――――――――|
            |數(shù)據(jù)段|
            |―――――――――|
            |堆棧|
            \―――――――――/內(nèi)存高端

            堆棧是內(nèi)存中的一個連續(xù)的塊。一個叫堆棧指針的寄存器(SP)指向堆棧的棧頂。堆棧的底部是一個固定地址。堆棧有一個特點就是,后進先出。也就是說,后放入的數(shù)據(jù)第一個取出。它支持兩個操作,PUSH和POP。PUSH是將數(shù)據(jù)放到棧的頂端,POP是將棧頂?shù)臄?shù)據(jù)取出。在高級語言中,程序函數(shù)調(diào)用和函數(shù)中的臨時變量都用到堆棧。參數(shù)的傳遞和返回值是也用到了堆棧。通常對局部變量的引用是通過給出它們對SP的偏移量來實現(xiàn)的。另外還有一個基址指針(FP,在Intel芯片中是BP),許多編譯器實際上是用它來引用本地變量和參數(shù)的。通常,參數(shù)的相對FP的偏移是正的,局部變量是負的。當程序中發(fā)生函數(shù)調(diào)用時,計算機做如下操作:首先把參數(shù)壓入堆棧;然后保存指令寄存器(IP)中的內(nèi)容,做為返回地址(RET);第三個放入堆棧的是基址寄存器(FP);然后把當前的棧指針(SP)拷貝到FP,做為新的基地址;最后為本地變量留出一定空間,把SP減去適當?shù)臄?shù)值。

            下面舉個例子:
            example1.c:
            ------------------------------------------------------------
            void function(int a, int b, int c) {
            char buffer1[5];
            char buffer2[10];
            }

            void main() {
            function(1,2,3);
            }
            -----------------------------------------------------------

            為了理解程序是怎樣調(diào)用函數(shù)function()的,使用-S選項,在Linux下,用gcc進行編譯,產(chǎn)生匯編代碼輸出:

            $ gcc -S -o example1.s example1.c

            看看輸出文件中調(diào)用函數(shù)的那部分:

            pushl $3
            pushl $2
            pushl $1
            call function

            這就將3個參數(shù)壓到堆棧里了,并調(diào)用function()。指令call會將指令指針I(yè)P壓入堆棧。在返回時,RET要用到這個保存的IP。在函數(shù)中,第一要做的事是進行一些必要的處理。每個函數(shù)都必須有這些過程:

            pushl %ebp
            movl %esp,%ebp
            subl $20,%esp

            這幾條指令將EBP,基址指針放入堆棧。然后將當前SP拷貝到EBP。然后,為本地變量分配空間,并將它們的大小從SP里減掉。由于內(nèi)存分配是以字為單位的,因此,這里的buffer1用了8字節(jié)(2個字,一個字4字節(jié))。Buffer2用了12字節(jié)(3個字)。所以這里將ESP減了20。這樣,現(xiàn)在,堆??雌饋響撌沁@樣的。

            低端內(nèi)存高端內(nèi)存
            buffer2 buffer1 sfp ret a b c
            < ------ [ ][ ][ ][ ][ ][ ][ ]
            棧頂棧底

            緩沖區(qū)溢出就是在一個緩沖區(qū)里寫入過多的數(shù)據(jù)。那怎樣利用呢,看
            一下下面程序:

            example2.c
            -----------------------------------------------------------
            void function(char *str) {
            char buffer[16];

            strcpy(buffer,str);
            }

            void main() {
            char large_string[256];
            int i;

            for( i = 0; i < 255; i++)
            large_string[i] = 'A';

            function(large_string);
            }
            ------------------------------------------------------------

            這個程序是一個經(jīng)典的緩沖區(qū)溢出編碼錯誤。函數(shù)將一個字符串不經(jīng)過邊界檢查,拷貝到另一內(nèi)存區(qū)域。當調(diào)用函數(shù)function()時,堆棧如下:

            低內(nèi)存端buffer sfp ret *str高內(nèi)存端
            < ------ [ ][ ][ ][ ]
            棧頂棧底

            很明顯,程序執(zhí)行的結果是"Segmentation fault (core dumped)"或類似的出錯信息。因為從buffer開始的256個字節(jié)都將被*str的內(nèi)容'A'覆蓋,包括sfp, ret,甚至*str。'A'的十六進值為0x41,所以函數(shù)的返回地址變成了0x41414141, 這超出了程序的地址空間,所以出現(xiàn)段錯誤??梢?,緩沖區(qū)溢出允許我們改變一個函數(shù)的返回地址。通過這種方式,可以改變程序的執(zhí)行順序。

            緩存區(qū)溢出和格式化字符串攻擊主要是什么原因造成的?

            緩沖區(qū)溢出是一種非常普遍、非常危險的漏洞,在各種操作系統(tǒng)、應用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,可以導致程序運行失敗、系統(tǒng)當機、重新啟動等后果。更為嚴重的是,可以利用它執(zhí)行非授權指令,甚至可以取得系統(tǒng)特權,進而進行各種非法操作。緩沖區(qū)溢出攻擊有多種英文名稱:buffer
            overflow,buffer overrun,smash the stack,trash the stack,scribble the
            stack, mangle the stack, memory leak,overrun
            screw;它們指的都是同一種攻擊手段。第一個緩沖區(qū)溢出攻擊--Morris蠕蟲,發(fā)生在十年前,它曾造成了全世界6000多臺網(wǎng)絡服務器癱瘓。

            本文發(fā)布于:2023-02-28 18:48:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167758473944762.html

            版權聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。

            本文word下載地址:緩存溢出(緩存溢出攻擊).doc

            本文 PDF 下載地址:緩存溢出(緩存溢出攻擊).pdf

            標簽:緩存
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網(wǎng)旗下知識大全大全欄目是一個全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 2020精品自拍视频曝光| 亚洲美女厕所偷拍美女尿尿| 精品国产福利一区二区在线| 青青青草国产熟女大香蕉| 国产精品国产亚洲看不卡| 麻豆精品传媒一二三区| 国产一国产一级毛片aaa| 国产午夜福利精品视频| 国产一区二区精品网站看黄| 亚洲熟女乱色一区二区三区| 日韩大片高清播放器| 久久男人av资源站| 88国产精品视频一区二区三区| 制服丝袜亚洲欧美中文字幕| 97欧美精品系列一区二区| 强奷漂亮少妇高潮伦理| 91亚洲国产三上悠亚在线播放| 午夜福利精品一区二区三区| 成人精品国产一区二区网| 亚洲午夜成人精品电影在线观看| 在线高清理伦片a| 亚洲AV无码专区电影在线观看| 宫西光有码视频中文字幕| 亚洲国产精品久久久久婷婷图片| 亚洲码和欧洲码一二三四| 国产999久久高清免费观看| 久久一日本综合色鬼综合色| 国语精品一区二区三区| 香蕉在线精品一区二区| 国产精品日日摸夜夜添夜夜添无码 | 毛片在线看免费| 亚洲成av人片无码迅雷下载| 午夜福利国产精品视频| 成人av片在线观看免费| 2020中文字字幕在线不卡| 麻豆国产精品VA在线观看| 中文字幕人妻不卡精品| 成人综合网亚洲伊人| 亚洲天堂伊人久久a成人| 91色老久久精品偷偷性色| 久久热这里只有精品99|