四虎国产精品永久地址998_chinesexxx少妇露脸_日本丁香久久综合国产精品_一区二区久久久久_四虎av影视_久久久久国产一区二区三区不卡

您現(xiàn)在的位置:首頁(yè) > 企業(yè)新聞 > 信息收集與系統(tǒng)攻擊之緩沖區(qū)溢出攻擊原理

信息收集與系統(tǒng)攻擊之緩沖區(qū)溢出攻擊原理

2018-03-26 20:42:01 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

2)緩沖區(qū)溢出攻擊原理

緩沖區(qū)溢出是一種非常普遍也非常危險(xiǎn)的漏洞,廣泛存在于各種操作系統(tǒng)、應(yīng)用軟件中。漏洞的原因是由于程序員對(duì)數(shù)據(jù)沒(méi)有進(jìn)行嚴(yán)格的校驗(yàn),攻擊者可以通過(guò)向程序的緩沖區(qū)寫(xiě)入超過(guò)預(yù)定長(zhǎng)度的數(shù)據(jù)j從而破壞程序的堆棧,導(dǎo)致程序執(zhí)行流程的改變

#inclucle <stdio.h>

int main() (

char name[8];

printf(’’Please inpur your name:¨); gets(name);

printf(”you name is:%s!”, name); return 0:

)

這段程序的功能是顯示輸入的用戶名稱。在程序中,用于存放用戶輸入名稱的變量name長(zhǎng)度定義為8位,由于程序缺少必要的輸入長(zhǎng)度校驗(yàn),當(dāng)用戶的輸入值超過(guò)8位時(shí),

printf(”you name is:%s!",name)執(zhí)行時(shí)會(huì)導(dǎo)致一個(gè)緩存溢出。例如輸入用戶輸入姓名為

“aaaaaaaaaaaaaaaaaaaaaaaa”時(shí),由于輸入值超過(guò)name定義的長(zhǎng)度(程序申請(qǐng)緩沖區(qū)),當(dāng)

程序?qū)⒂脩糨斎胫当4娴絥ame的地址空間時(shí),會(huì)繼續(xù)向內(nèi)存后續(xù)地址空間寫(xiě)入其余輸入內(nèi)容,進(jìn)而覆蓋了程序棧中存儲(chǔ)的返回地址( EIP),如下圖所示。

內(nèi)存底部 內(nèi)存頂部

正常狀態(tài)下的堆棧

name XXX EIP XXX

[cispcisp] [ ] [ ] [ ]

name XXX既P XXX

[aaaaaaaa] [aaaa] [aaaa] [aaaa] ‘

溢出狀態(tài)下的堆棧

堆棧頂部 堆棧底部

圖3-21緩沖區(qū)溢出堆棧狀態(tài)

程序在需要調(diào)用返回地址時(shí),把EIP中存儲(chǔ)的“aaaa”的ASCⅡ碼Ox61616161作為下一條指令地址,CPU會(huì)試圖執(zhí)行Ox61616161處的指令,而由于該內(nèi)存并非運(yùn)行程序所能訪問(wèn),因此這個(gè)操作會(huì)被系統(tǒng)拒絕,因此產(chǎn)生錯(cuò)誤。如圖所示。


  如果攻擊者輸入的內(nèi)容是經(jīng)過(guò)精確定義的,覆蓋了EIP原有的地址,使得程序跳轉(zhuǎn)攻擊者覆蓋進(jìn)去的地址,而該地址處執(zhí)行預(yù)先放置一段攻擊代碼,那么攻擊者就可以執(zhí)行這段攻擊代碼從而獲得系統(tǒng)控制權(quán)或者執(zhí)行其他攻擊操作。

標(biāo)簽: 緩沖區(qū)溢出
主站蜘蛛池模板: 钟祥市| 筠连县| 沭阳县| 大港区| 邢台县| 黄龙县| 方山县| 望奎县| 民丰县| 白银市| 夹江县| 合江县| 中西区| 小金县| 安国市| 怀远县| 万荣县| 兴城市| 溆浦县| 米脂县| 丹阳市| 丘北县| 广饶县| 五原县| 会理县| 庄浪县| 札达县| 宝清县| 汉源县| 景东| 竹山县| 滨海县| 临沂市| 长兴县| 浦北县| 贵定县| 桐乡市| 象山县| 博客| 辽阳市| 博湖县|