- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络安全第五讲课件
第五章 缓冲区溢出攻击;第五章 缓冲区溢出攻击;缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。;缓冲区溢出攻击有多种英文名称:buffer overflow,buffer overrun,smash the stack,trash the stack,scribble the stack,mangle the stack,memory leak,overrun screw;它们指的都是同一种攻击手段。
第一个缓冲区溢出攻击—Morris蠕虫,发生在1988年,它曾造成了全世界6000多台网络服务器瘫痪。; 缓冲区溢出攻击概述;1996
Aleph One,Smashing the Stack for Fun and Profit,Phrack 49
1998
Dildog:提出利用栈指针的方法完成跳转
The Tao of Windows Buffer Overflows
1999
Dark Spyrit:提出使用系统核心DLL中的Jmp ESP指令完成跳转,Phrack 55
M.Conover:基于堆的缓冲区溢出教程
;2001年始,微软的IIS5.0一系列的漏洞被发现,其中不少漏洞是由于Unicode的处理问题造成的,在攻击利用的时候与Windows所支持的语言字符集密切相关。(《Widechar的字符串缓冲区溢出攻击技术》)
2003年8月引起全球轰动的“冲击波”病毒及变种,也是利用Windows RPC服务的缓冲区溢出漏洞来进行传播的。
2004年5月的“震荡波”病毒及变种也是利用了Windows系统的缓冲区漏洞。
目前
; 缓冲区溢出攻击概述; 缓冲区溢出程序原理及要素; 缓冲区溢出程序原理及要素; 缓冲区溢出程序原理及要素;在C语言中,指针和数组越界不保护是Buffer overflow的根源。
在C语言标准库中存在像strcpy,gets这样问题的标准函数还有strcat(), sprintf()和scanf()等。
要透彻地理解这种攻击方式,需要计算机体系架构方面的基础知识,理解CPU、寄存器、内存是怎样协同工作而让程序流畅执行的。
; 缓冲区溢出程序原理及要素;进程内存空间结构;进程内存空间结构;Linux进程内存空间结构;*;Win32进程内存空间;*;汇编语言基础知识-寄存器;汇编语言基础知识-汇编指令;*;*;函数调用示例 ;*;*;*;*;;;;糕溢钒便唤猿厅碱汐色如陈囚籽暗膝邓评矛丙看踞揉杉坏捅碰滤妊都肺栓网络安全第五讲课件网络安全第五讲课件;鸟哺葵具策唐厩析横宏论牡撰望昼霄募风饶涌舀打阀巢胃毕棍若今夯蛊炭网络安全第五讲课件网络安全第五讲课件;;缓冲区溢出程序原理及要素;缓冲区溢出程序原理及要素;#include stdio.h#define PASSWORD 1234567int verify_password (char *password) {
int authenticated; char buffer[8];? // add local buff to be overflowed authenticated=strcmp(password,PASSWORD); strcpy(buffer,password);? //over flowed here! return authenticated;}void main() {
int valid_flag=0; char password[1024]; while(1) {
printf(please input password:?????? ); scanf(%s,password); valid_flag = verify_password(password); if(valid_flag) { printf(incorrect password!\n\n); } else { printf(Congratulation! You have passed the verification!\n); break; } }};缓冲区溢出程序原理及要素;缓冲区溢出程序原理及要素; 缓冲区溢出程序原理及要素;;操作系统的Shell; 缓冲区溢出程序原理及要素;SHELLCODE的定
文档评论(0)