论文部分内容阅读
渗透测试是检测网络漏洞的重要手段。它能使网络管理人员直观地体会到网络漏洞的危害程度,增强安全意识,并且能够根据检测结果有效的提高网络的安全程度。因此,渗透测试技术的研究及工具实现具有重要的意义。 缓冲区溢出和SQL注入是渗透测试中重要的技术。本课题的最终目的是实现一个基于缓冲区溢出和SQL注入的测试工具。本文深入介绍了缓冲区溢出攻击和SOL注入的原理,包括:栈、堆、格式化字符串、单字节四种缓冲区溢出的过程;覆盖返回地址、函数地址两种流程跳转技术;shellcode的编写方法、流程及筛选;SQL注入的原理;利用系统表对MSSQL Server的注入方法,注入方法分为提示开启与提示关闭。 NBSI是当前流行的针对MSSQL Server的注入测试工具,但是其注入检测方法却不够准确,而且仅针对ASP,本文的实验表明JSP中也存在注入漏洞。使用抓包工具WinSockExpert对NBSI的注入检测及猜解方法进行分析,可以得出NBSI采用基于状态码的方法判断注入漏洞并猜解数据,本文发现的存在注入漏洞的页面表明这种方法比较片面。本文在其基础上进行了改进:采用状态码及返回信息结合的方法进行注入检测及猜解。本文针对ASP与JSP采用MSSQL Server作为后台数据库且其提示信息开启时设计了关键字,根据返回信息是否包含定义的关键字判定注入漏洞。注入猜解则是根据状态码进行的。 在此基础上,本文实现了一个基于缓冲区溢出和SQL注入的测试工具,这对渗透测试的自动化有重大的意义。测试工具采用iava语言实现(缓冲区溢出的核心模块使用java语言的原生方法实现),