freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第七章計算機系統(tǒng)安全(緩沖區(qū)溢出)-wenkub

2023-03-22 23:20:58 本頁面
 

【正文】 Oracle9i,網(wǎng)絡服務 (Microsoft IIS),網(wǎng)絡協(xié)議實現(xiàn) (例如 OpenSSL),多媒體軟件 (Apple QuickTime)等等 2023/3/22 緩沖溢出概述 (續(xù)) ? 緩沖區(qū)溢出可以成為攻擊者實現(xiàn)攻擊目標的手段,但是單純地溢出緩沖區(qū)并不能達到攻擊的目的。 2023/3/22 第 7章 計算機系統(tǒng)安全(緩沖區(qū)溢出) 緩沖區(qū)溢出概述 緩沖區(qū)溢出攻擊的原理 緩沖區(qū)溢出攻擊的防御技術 2023/3/22 緩沖溢出攻擊的原理 ? 1. 緩沖區(qū)溢出攻擊模式 Attacked System 溢出緩沖區(qū) 重定向到攻擊程序 任意地執(zhí)行程序 執(zhí)行攻擊程序 Attacker 注入惡意數(shù)據(jù) 獲得控制權 找到可利用的緩沖區(qū)溢出隱患 惡意數(shù)據(jù)可以通過 命令行參數(shù)、 環(huán)境變量、 輸入文件或者 網(wǎng)絡數(shù)據(jù)注入 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 2. 緩沖區(qū)溢出可能發(fā)生的位置 ? 預備知識點 ? 進程在內(nèi)存中的布局 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 代碼段 /文本段 ? 用于放置程序的可執(zhí)行代碼 (機器碼 ) 。 ? 堆棧段 ? 用于存放函數(shù)的參數(shù),返回地址,調(diào)用函數(shù)的棧基址以及局部非靜態(tài)變量。 } void main (int argc, char **argv) { char large_string[8]。 i++) large_buffer[i]=?A? function(large_string)。 int i。 } 2023/3/22 Example (contd.) Large_string 上一個棧幀地址 返回地址 argv 內(nèi)存低端 內(nèi)存高端 argc ESP Main函數(shù)的棧幀 i *str 返回地址 main函數(shù)的 棧幀地址 buffer function函數(shù)棧幀 function函數(shù) 被調(diào)用,調(diào)用 strcpy之前 void function (char *str) …… …… 2023/3/22 Example (contd.) Large_string 上一個棧幀地址 返回地址 argv 內(nèi)存低端 內(nèi)存高端 argc ESP Main函數(shù)的棧幀 i *str 返回地址 AAAA AAAA function函數(shù)棧幀 function函數(shù) 被調(diào)用,調(diào)用 strcpy之后 void function (char *str) …… …… 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 基于堆棧的緩沖區(qū)溢出的潛在危害 ? 改寫返回地址 ? 改寫調(diào)用函數(shù)棧的棧幀地址 被調(diào)函數(shù) …… movl %ebp,%esp popl %ebp ret 調(diào)用函數(shù) …… movl %ebp,%esp popl %ebp ret 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 基于堆棧的緩沖區(qū)溢出的潛在危害(續(xù)) ? 改寫函數(shù)指針 ? 改寫虛函數(shù)指針 ? 改寫異常處理指針 ? 改寫數(shù)據(jù)指針 void BadCode(char * string) { void (*p)() = ...。 …… } 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 2. 緩沖區(qū)溢出可能發(fā)生的位置(續(xù)) ? 堆棧 (stack) ? 堆 (heap) ? 數(shù)據(jù)段 (data) ? BSS段 .text .data .bss heap unused stack env Low address High address Linux/Intel IA32 architecture 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 基于堆的緩沖區(qū)溢出 ? Heap is a contiguous memory used to dynamically allocate space where the size will be known only during the execution of the code. ? 在 Linux中,堆空間按照 Doug Lea算法實現(xiàn)動態(tài)分配。 strcpy(buf1,”AAAAAAAAAAAAAAA”)。 int i。 } 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 2. 緩沖區(qū)溢出可能發(fā)生的位置(續(xù)) ? 堆棧 (stack) ? 堆 (heap) ? 數(shù)據(jù)段 (data) ? BSS段 .text .data .bss heap unused stack env Low address High address Linux/Intel IA32 architecture 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 基于 BSS段的緩沖區(qū)溢出 void Overflow_BSS(char* input) { static char buf[4]。 i++) buf[i] = ?A?。參見OpenBSD developers, singlebyte buffer overflow vulnerability in ftpd, December 2023. void BadCode(char *str){ char buffer[512]。 } 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 利用有符號整數(shù)與無符號整數(shù)的轉換 void BadCode(char* input) { short len。 } 2023/3/22 緩沖溢出攻擊的原理(續(xù)) ? 4. 惡意代碼(注入) 例如為實現(xiàn): “exec (/bin/sh)” char shellcode [ ] = ”\xeb\x1f\x5e\x89\x76\x08\x31\xc0” ”\x88\x46\x07\x89\x46\x0c\xb0\x0b” ”\x89\xf3\x8d\x4e\x08\x8d\x56\x0c” ”\xcd\x80\x31\xdb\x89\xd8\x40\xcd” ”\x80\xe8\xdc\xff\xff\xff / bin / sh”。 long * long_ptr 。 i++) *( long_ptr + i ) = ( int ) buffer 。 strcpy ( buffer , large_string ) 。 void main( ) { char buffer [96]。 for ( i = 0。 istrlen ( shellcode ) 。 istrlen ( shellcode ) 。 ? 由于 libc中的庫函數(shù)常被用作現(xiàn)成的攻擊代碼,所以有時把這種攻擊方式稱為 returntolibc。 例如 Microsoft Visual Studio 提供的 C的標準函數(shù)庫 strsafe; 2023/3/22 緩沖區(qū)溢出攻擊的防御技術 ? 基于軟件的防御技術
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1