网络攻击与防御技术西南交通大学信息科学与技术学院黄文培2019-21)缓冲区溢出的概念2)程序的内存组织与缓冲区溢出类型3)缓冲区溢出攻击的三个案例4)缓冲区溢出攻击的防范第三章缓冲区溢出攻击3
1缓冲区溢出的概念缓冲区读写缓冲区通信缓冲区显示缓冲区键盘缓冲区charstr[128];3
1缓冲区溢出的概念1988年,Cornell大学的Morris的Finger蠕虫病毒2001年,红色代码蠕虫病毒2003年,Slammer病毒“震荡波”、“狙击波”3
2程序的内存组织与缓冲区溢出类型intx=100;intmain(){inta=2;floatb=2
5;staticy;int*ptr=(int*)malloc(2*sizeof(int));ptr[1]=5;ptr[2]=6;free(ptr);return1;}3
2程序的内存组织与缓冲区溢出类型栈(Stack)堆(Heap)3
2程序的内存组织与缓冲区溢出类型(TextSegment,文本段)(DataSegment)(BSSSegment)BSS段溢出堆溢出栈溢出3
3基于BSS段的缓冲区溢出攻击buf1buf20021713800217148diff3
3基于BSS段的缓冲区溢出攻击buf1buf2BBBBBBBBBBBBBBB\0AAAAAAAAAAAAAAA\0buf1buf2BBBBBBBBBBBBBBB\0BBBBBBBBAAAAAAA\0溢出前溢出后3
4基于修改邻接变量的栈缓冲区溢出攻击#definePASSWORD"1234567“intverify_password(char*password){intauthenticated;charbuffer[8];//addlocalbufftobeoverflowedauthenticated=strcmp(password,P