自动注入攻击工具的研发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章绪论项目背景及意义
SQL注入攻击是一种非常有效且破坏性很大的渗透手段。它是针对于数据库的一种攻击手段,通过利用数据库的外部接口把恶意代码插入到SQL语言中使数据库服务器解析并执行,以达到入侵目标数据库及至整个操作系统的目的。了解和熟悉SQL注入原理,掌握防御SQL注入攻击的原理和技巧就变得至关重要。SQL注入攻击的普遍性、难捉摸性、简易性等特点让其成为了网络中黑客主流攻击方式之一。因为SQL注入是从正常的Web平台入口进行请求访问,和请求正常的Web页面没有什么区别,所以目前市面上除了专门的Web防御防火墙外,大部分防火墙都不会对这类SQL注入攻击进行监控和发出警报,若网站管理员没有经常查看IIS日志的经验和习惯,有可能被入侵很长一段时间后都没有任何发觉。由于现在广泛流行的恶意攻击工具,SQL注入在近年来呈现一种增长的趋势。
据OWASP(开放式web应用程序安全项目)每隔三年更新一次的“十大安全隐患列表”,在近几次公布的总结Web应用程序最可能、最常见、最危险的十大安全隐患中,SQL 注入攻击一直排列靠前。OWASP TOP 10 2010中列出的最严重的Web应用程序的漏洞中,注入(Injection)风险位居第一。
Web应用的发展越来越成熟,应用的各项技术发展得也越来越复杂。它们涵盖了从外部动态展示INTERNET和内部工作网络到以WEB协议方式传递数据的企业工作应用(如文档管理系统等)。这些系统的实用性及其数据存储、处理内容的机密性和敏感性对于企业的主要业务而言都非常重要。
当前市面的注入攻击检测工具只能对单个网页或者单个URL进行检测和注入,无法对整个网站的漏洞进行检测。而漏洞扫描工具可以对整个网站漏洞进行扫描却无法进行进一步的注入攻击检测。很大程度上不能满足开发人员和管理人员对网站SQL注入漏洞全面了解的要求。本研究的最终目的是分析SQL注入攻击的类型、关键技术和原理,并研究SQL注入在实际应用中的操作方法,在此基础之上,设计并开发了一套自动注入工具。
因为恶意攻击者不仅可以通过SQL注入攻击对Web应用数据进行盗取、篡改信息,还可以进一步对于服务器进行恶意操作,并且植入木马或者后门程序,甚至控制整个服务器,这就严重影响了应用的正常运行以及对于应用的信息安全带来严重后果。所以,对于功能齐备的SQL注入攻击扫描与检测工具的研究与开发具,具有非常重要的现实意义。
应用程序开发者或网站管理人员使用此工具对自已的网站进行安全检测,以达到减小SQL注入的可能性。同时,在渗透测试工作中,对于安全测试也具有很大的帮助。
研究内容
自动注入攻击工具的研发
本研究首先理解Web应用的工作原理,首先简要概述Web应用系统通用的架构模式,理解了构建模式后能更清晰的了解SQL注入的产生过程,然后从Web应用的代码层来分析介绍是什么引起了通用的SQL注入,然后研究介绍SQL注入漏洞的利用过程。从框架到利用逐步分析SQL注入的过程和利用,然后根据分析的内容构建SQL注入的自动化检测及注入攻击利用框架。
SQL注入原理
SQL注入的原理,是将SQL代码插入或者非正常时添加到应用的参数当中,并且进行了一定的拼接传入到了后台的数据库服务器,最终使服务器执行了该拼接的恶意SQL命令。所有的是通过SQL语句执行的应用过程均存在被攻击的威胁,因为SQL的多样多变性语言结构特征使得攻击者可以拼接构建丰富的代码编码手段等来拼接语句来欺骗服务器。SQL注入攻击的主要方式就是直接将命令插入到应用服务的表单参数中传入到后台数据库查询字符串中,这些参数就会被带入到后台数据库服务器进行执行解析,攻击者便可以构造恶意命令来达到攻击目的。
SQL注入检测技术
检测发现SQL注入漏洞有一条简单的规则:SQL注入是通过发送特殊数据来触发异常操作。该规则包括如下含义:
●检测Web应用上所有的输入数据;
●集合SQL语法,归类所有可能触发异常的数据类型;
●检测数据库服务器应用响应中的异常。
首先需要清楚Web浏览器向Web服务器发送请求的过程。不同的服务应用会有不同的体现方式,它们均处在基于Web的环境中,所以基本原理是相同的。
识别和检测应用接受的所有数据,攻击一般都会修改这些数据,所以需要识别并分析服务器对它们的响应。有时响应中会直接包含来自数据库的SQL错误,有时需要不断的
方式来检测和确定响应中细微的差别。
章节安排
本论文章节安排如下:
第一章绪论:综述此研究设计的背景意义以及研究内容。
第二章SQL注入技术研究:主要对SQL注入攻击方式过程和攻击特点进行归类、识别,首先理解Web应用的工作原理,概述Web应用通用的构建方式,为理解SQL注入的产生过程提供一些背景知识,接下来从Web应用的代码层介绍引发SQL注入的因素以及哪些开发实践和行为会引发SQL注入。分析SQL注入过程和利用,并架构如何将SQL注入的发现过程自动化以提高检测简单SQL注入的框架。
第三章SQL注入攻击技术研究:根据SQL注入技术,研究利用数据库中的功能来攻击系统端口的技术。数数据库大多均带有丰富的数据库编程功能,可以利用SQL注入漏洞来访问文件系统以执行有效的任务,可以在基础操作上执行各种命令,扩大范围攻击的利用技术细节。当发现SQL注入漏洞以及初步的利用获取数据后,可以利用SQL 注入漏洞来访问文件系统来扩大渗透范围。还可以在操作系统上执行各种命令,攻击可以使用它们扩展数据库的可达区域并在更大的范围内发动攻击。
第四章注入高级技巧研究:Web应用通常会使用过滤应用,设计这些过滤的目的就是防御SQL注入在内的常见攻击。这些过滤方式可以是位于web应用的代码层中,也可以通过第三方的外部实现,如Web应用防火墙(WAF)或入侵防御系统(IPS)。当注入攻击碰到这些防御应用,若想进一步利用漏洞,则需要寻找一种能避开过滤器防护的高级方法以便恶意输入传递给易受攻击的代码。
第五章自动注入工具框架设计:根据项目的设计需求,以及Python编程语言的特点,对自动注入攻击工具整体框架进行分析和设计。并且分析功能模块中的重点和关键技术。
第六章SQL注入测试:自动注入攻击实例测试。