网络安全实验教程(第2版)课件 电子 第4、5章 软件漏洞、Web应用攻击_第1页
网络安全实验教程(第2版)课件 电子 第4、5章 软件漏洞、Web应用攻击_第2页
网络安全实验教程(第2版)课件 电子 第4、5章 软件漏洞、Web应用攻击_第3页
网络安全实验教程(第2版)课件 电子 第4、5章 软件漏洞、Web应用攻击_第4页
网络安全实验教程(第2版)课件 电子 第4、5章 软件漏洞、Web应用攻击_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章二进制软件漏洞建议学时:6假消息攻击目录content整型溢出实验2栈溢出实验1UAF漏洞实验3格式化字符串溢出实验4栈溢出利用实验531栈溢出实验实验原理栈是一块连续的内存空间,用来保存程序和函数执行过程中的临时数据,这些数据包括局部变量、类、传入/传出参数、返回地址等。栈的增长方向与内存的增长方向相反。栈溢出指的是向栈中的某个局部变量存放数据时,数据的大小超出了该变量预设的空间大小,导致该变量之后的数据被覆盖破坏。由于溢出发生在栈中,所以被称为栈溢出。实验目的了解栈的内存布局和工作过程,掌握栈溢出原理。41.1实验设计OllyDbg:一款动态调试工具。OllyDbg将IDA与SoftICE的功能结合起来,是Ring3级调试器,非常容易上手掌握。VisualStudio2013:微软推出的一款编程开发工具集,包括C++、C#、VisualBasic

等编程语言的编译环境实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境通过调试器跟踪栈溢出发生的整个过程,绘制溢出过程中栈的变化图,验证和掌握栈溢出原理。51.2实验步骤安装VisualStudio2013与OllyDbg工具,新建项目,按要求配置修改项目属性编译运行给定代码,编译成Release版的可执行文件使用OllyDbg加载编译生成的可执行文件同时输入参数,进入调试状态在main函数的起始位置设置断点,以便观察参数入栈观察name变量缓冲区,main函数的返回地址00401241在name变量下方单步步过strcpy函数,观察栈内变化,由于参数长度过长,导致顺着内存生长方向继续复制a,最终原EBP的值和main函数返回地址都被a覆盖,造成了缓冲区溢出继续单步运行到ret指令,返回地址已被覆盖为0x61616161,继续运行调试器报错0102030405060762整型溢出实验实验原理整数类型包括长整型、整型和短整型,其中每一类又分为有符号和无符号两种类型。如果程序没有正确的处理整型数的表达范围、符号或者运算结果时,就会发生整型溢出问题。整型溢出一般分为宽度溢出、符号溢出、运算溢出。实验目的掌握整型溢出的原理,了解宽度溢出和符号溢出的发生过程。72.1实验设计VisualStudio2013实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境使用VisualStudio的源码调试功能,跟踪发生宽度溢出和符号溢出的全过程,尝试不同的程序输入,并跟踪变量和内存的变化,以观察不同整型溢出的原理。82.2实验步骤--宽度溢出将整型宽度溢出代码编译成debug版的t1.exe使用VisualStudio调试t1.exe,参数栏填入“100aaaaaaaaaaaaaaaa”直接运行程序,由于参数i的值大于10,不能通过条件判断修改参数,参数栏修改为“65537aaaaaaaaaaaaaaaa”,并在第7行设置断点重新调试,单步运行程序,观察界面下方的自动窗口此时i=65537。再次单步运行1次,此时s=1,“i”的高位被截断了,发生了整型宽度溢出继续运行程序,由于s的值小于10,通过了条件判断,进入到memcpy函数,复制的长度远大于缓冲区的值10,导致缓冲区溢出,程序最终提示出错01020304050692.2实验步骤--符号溢出将整型符号溢出代码编译成debug版的t2.exe使用VisualStudio调试t2.exe,在参数栏填入“1000aaaaaaaaaaaaaaaa”直接运行程序,由于参数i的值为1000,大于限定size=800,不能通过条件判断修改参数,参数栏修改为“-1aaaaaaaaaaaaaaaa”,并在第6行设置断点重新调试,单步运行程序,观察界面下方的自动窗口此时len=-1,而size=800继续运行程序,len通过了条件检查,进入到memcpy函数,len作为无符号数对待,由此发生整型符号溢出错误。此时len=0xffffffff(即4294967295),远大于目的缓冲区kbuf的值800,继续运行发生错误010203040506103UAF漏洞实验实验原理UAF漏洞是目前较为常见的漏洞形式,它指的是由于程序逻辑错误,将已释放的内存当做未释放的内存使用而导致的问题,多存在于InternetExplorer等使用了脚本解释器的浏览器软件中,因为在脚本运行过程中内部逻辑复杂,容易在对象的引用计数等方面产生错误,导致使用已释放的对象。实验目的掌握UAF漏洞的原理,了解UAF漏洞的发生过程。113.1实验设计VisualStudio2013实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境使用VisualStudio的源码调试功能,观察内存块p1的创建和释放过程,并观察内存块p1释放后再次使用的情况,以了解UAF漏洞的原理。123.2实验步骤新建项目,按要求配置修改项目属性,将UAF实验程序编译成debug版UAF.exe使用VS调试UAF.exe,参数栏填入30个’a’并在在第16行设置断点调试程序,p1分配地址0x011873c0,p1->func的值未初始化。单步执行,p1->func的值为myfunc函数的地址0x000c1073单步到第20行,p1的地址已被释放但仍指向0x011873c0,其数据被0xfeeefeee覆盖单步执行1次,内存块p2分配地址0x011873c0与p1的地址一样。单步执行1次,30个’a’被复制到p2指向的内存中,同时p1->func的地址也被修改为0x61616161再次单步执行,由于p2与p1地址指向同一块内存,且该内存的内容已被修改,当调用已释放的func函数时,程序出错崩溃,指令地址指向0x61616161010203040506133.3问题讨论1、在4.5节UAF漏洞实验中,内存块p2的地址正好与内存块p1的地址重合,导致了UAF漏洞。请实验证明在什么情况下内存块p2的地址不会与内存块p1的地址重合。144格式化字符串溢出实验实验原理格式化字符串溢出常见于Linux系统中,它指的是在使用printf等函数的特殊的格式化参数“%n”时,没有给它指定正确的变量地址,导致该参数在往变量地址写数据时,由于地址不正确导致写内存错误,或导致攻击者可以将任意数据写到指定的内存位置,形成任意代码执行的后果。实验目的掌握格式化字符串溢出的原理,了解格式化字符串溢出的发生过程。154.1实验设计VisualStudio2013OllyDbg实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境使用调试器跟踪格式化字符串溢出发生的整个过程,分析程序出错的原因。验证和掌握格式化字符串溢出原理。164.2实验步骤将给定实验程序编译成debug版print.exe直接运行程序,程序出错,同时可见num变量由初始值0修改为26,即当前打印字符的个数OllyDbg加载print.exe,参数填入“abcd%n”进入调试状态,单步运行至call指令。观察右下角的栈窗口,printf函数的输入参数为“abcd%n”,即之前设置的程序输入参数单步执行,程序出错。观察右边的寄存器窗口,发现此时eax值为4,而edx值为0087110E,edx指向的内存不可写,所以产生写内存错误0102030405174.3问题讨论1、在格式化字符串溢出实验中,思考:函数输入参数与栈的关系、%n的作用、%n如何写变量,并分析为什么程序出错时eax值为4,edx的值是一个不可写的内存地址。2、程序输入“%n”导致程序发生了错误,请思考如何通过控制程序输入来将数据写入到指定的内存地址中。185栈溢出利用实验实验原理通过覆盖函数返回地址来控制程序流程是栈溢出最常见的利用技术。函数返回地址处于栈中较高内存的位置,很容易被超长的局部变量所覆盖,程序最终执行至被覆盖的地址处指令时发生错误。由于该地址来自局部变量,而局部变量又来自用户输入即程序参数,因此只需要修改程序参数就可以控制程序的流程。实验目的了解通过覆盖函数返回地址进行栈溢出利用的原理,掌握利用栈溢出漏洞启动计算器程序的方法,模拟利用漏洞启动恶意软件的效果。195.1实验设计VisualStudio2013OllyDbg实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境使用OllyDbg跟踪栈溢出利用的全过程,通过观察栈溢出中函数返回地址被覆盖后的后续流程,分析过程中输入文件和栈内容的变化情况,了解和掌握通过覆盖返回地址进行缓冲区溢出利用的技术。205.2实验步骤编译给定程序,在readfile\Release目录下新建input文件,内容按实验教程进行修改OllyDbg加载readfile.exe,进入调试状态,直接运行程序出错,提示内存地址34333231不可读OllyDbg中查看可执行模块,定位system函数在内存的位置(6CA408C2)并设置断点用UE编辑input文件,将31、32、33、34分别改为C2、08、A4、6C,即system地址的倒序Input文件”cdaaaaaa”8个字符修改为”cacl.exe”,并将后面1个字节修改为16进制的0重新调试,运行到断点,”cacl.exe”所在的地址为0019FF50。UE打开input文件”90ab”4个字符修改为16进制的50、FF、19、00再次重新调试运行到断点,观察栈内容窗口,system函数的输入参数和命令字符串已准备就绪,继续运行,弹出计算器程序,漏洞利用成功01020304050607215.3问题讨论1、在4.7节栈溢出利用实验中,关闭了VisualStudio的哪些安全防护措施?如果不关闭这些措施,实验会有什么结果?请通过实验逐个验证这些防护措施的作用。附录工具资源VisualStudio2013:

/zh-hans/vs/older-downloads/

https:///soft/1226121.htm

https:///pcsoft/yingyong/34316.html

OllyDbg:

http://www.ollydbg.de/

https:///soft/43009.htm(汉化版)

http:///downinfo/67902.html(汉化版)第五章Web应用攻击建议学时:4假消息攻击目录contentSQL注入实验2XSS跨站脚本实验1文件上传漏洞实验3跨站请求伪造实验4251XSS跨站脚本实验实验原理XSS跨站脚本攻击的目标是浏览器端程序,其利用Web应用对用户输入内容过滤不足的漏洞,在Web页面中插入恶意代码,当用户浏览该页面时,嵌入其中的恶意代码就会被执行,从而带来危害,如窃取用户Cookie信息、盗取账户信息、劫持用户会话、给网页挂马、传播蠕虫等。XSS跨站脚本攻击包括三种类型:反射型XSS、存储型XSS和DOM型XSS。实验目的理解XSS跨站脚本攻击的原理,掌握XSS跨站脚本攻击的基本方法。261.1实验设计WampserverApache2.4.×PHP5.6.×MySQL5.7.×教学管理模拟系统tms2021实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境通过浏览器访问存在漏洞的页面,构造XSS跨站攻击脚本触发漏洞,验证和掌握XSS跨站脚本攻击原理。271.2实验步骤安装配置wampserver,按照实验教程选择Apache、

PHP、

MySQL对应版本安装配置教学管理模拟系统,可以正常访问学号/工号查询功能处输入“<script>alert(1);</script>”,出现弹框,实现XSS跨站脚本攻击学生用户在课程评价功能处输入“<script>alert(1);</script>”,发现关键字过滤防护输入攻击代码“<SCRIPT>alert(1);</SCRIPT>”进行绕过,出现弹框,实现XSS跨站脚本攻击切换其他学生,进入课程评价,同样出现弹框,表明这里是存储型XSS跨站脚本攻击010203040506282SQL注入实验实验原理SQL注入攻击一般针对服务器端的数据库,其利用Web应用程序对输入代码过滤不足的漏洞,使用户输入影响SQL查询语句的语义,从而带来危害,如绕过系统的身份验证、获取数据库中数据及执行命令等。一般Web应用会根据用户请求,通过执行SQL语句从数据库中提取相应数据生成动态网页并返回给用户。在执行SQL查询功能时,如果输入内容引起SQL语句语义的变化,那么SQL语句的执行效果会发生改变从而产生攻击。实验目的理解SQL注入攻击的基本原理,掌握SQL注入攻击的基本方法。292.1实验设计Wampserver教学管理模拟系统

tms2021SQLMAP:一款基于Python开发的开源SQL注入攻击工具,可从其官网下载最新版本。在使用SQLMAP前,需要安装Python运行环境实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验环境通过浏览器访问存在漏洞的页面,构造SQL注入攻击脚本触发漏洞,验证和掌握SQL注入攻击原理。使用SQLMAP重复攻击过程,了解和掌握SQLMAP的原理与使用。302.2实验步骤安装SQLMAP学号/工号查询功能处输入“a’or

‘a’=‘a’

--”,获取teachers和students两个表格中的全部信息,发生了SQL注入攻击利用SQLMAP工具实现学号/工号查询功能的SQL注入攻击过程的自动化用户登录功能的工号/学号处输入“1or1=1--”,不用输入密码,直接登录系统,发生了SQL注入攻击,可以完成老师/学生账号的各种操作01020304312.3问题讨论1、针对学生成绩管理系统,根据SQL注入的攻击原理,构造更多的会产生SQL注入攻击的输入。2、如何避免SQL注入攻击?根据SQL注入攻击原理和防护方法,修改相应的PHP程序,使其能够防范SQL注入攻击。323文件上传漏洞实验实验原理文件上传漏洞攻击主要针对服务器端程序,如果Web应用对上传的文件检查不周,导致可执行脚本文件上传,从而获得执行服务器端命令的能力,这样就形成了文件的上传漏洞。文件上传漏洞攻击的危害非常大,攻击者甚至可以利用该漏洞控制网站。文件上传漏洞攻击具备三个条件:一是Web应用没有对上传的文件进行严格检查,使攻击者可以上传脚本文件,如PHP程序文件等;二是上传文件能够被Web服务器解释执行,如上传的PHP文件能够被解释执行等;三是攻击者能够通过Web访问到上传的文件。实验目的理解文件上传漏洞的基本原理,掌握文件上传漏洞攻击的基本方法。333.1实验设计Wampserver教学管理模拟系统

tms2021中国菜刀:Webshell管理工具实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。关闭WindowsDefender等系统的防护功能实验环境利用教学管理模拟系统中的文件上传漏洞上传一句话木马程序,使用Webshell管理工具实现靶机站点管理,验证和掌握文件上传漏洞原理。343.2实验步骤教学管理模拟系统的资料上传功能处上传测试文件test.html打开Web服务器的tms2021目录,可以看到已经上传的test.html文件上传的文件位于Web站点upload目录,输入地址http:///upload/test.html访问编辑一句话木马程序test.php并上传运行中国菜刀,添加控制网站所需要的网址和参数。双击添加的条目,启动控制界面可以对文件进行处理,包括上传文件、下载文件、编辑、删除等功能010203040506353.3问题讨论1、根据文件上传漏洞攻击过程,分析可能在哪些环节采取什么样的防御方法?364跨站请求伪造实验实验原理跨站请求伪造攻击利用会话机制的漏洞,引诱用户点击恶意网页,触发恶意网页中包含的执行代码,从而引发攻击。其攻击结果就是能够冒充用户执行一些特定操作,如递交银行转账数据等。用户在浏览网站并进行一些重要操作时,网站一般通过一个特殊的Cookie标识用户,称为会话ID(这个ID一般需要用户登录后才能够产生)。当用户进行操作时,会发送包含会话ID的HTTP请求,使网站可以识别用户,攻击者在诱骗用户点击恶意网页时,一般已在恶意网页中包含了用户进行某些操作的代码,从而能够冒充用户完成操作,这样攻击就发生了。实验目的理解CSRF攻击的基本原理,掌握CSRF攻击的基本方法。374.1实验设计Wampserver教学管理模拟系统tms2021Burpsuite:用于Web应用渗透测试的集成平台。Burpsuite包含了许多工具,并为这些工具设计了标准接口,可加快Web应用渗透测试的过程实验方法实验工具实验在单机环境下完成,其操作系统为Windows10,64位。实验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论