SQL注入攻击的分析与防范

SQL注入攻击的分析与防范[20191218090534]
摘 要
SQL注入是计算机网络技术中影响数据安全且具有极大破坏性的漏洞之一,只要Web应用能够和数据库进行交互它便可能存在。基于交互的需要,Web应用能够向后台数据库传递SQL查询,这给攻击者提供了利用该查询进行攻击的条件,也就是为引发SQL注入攻击提供了可能。攻击者构造特殊的提交内容,通过外部接口传递给后台数据库从而来改变SQL自身的语法和功能,最终利用注入点获取相关的控制权限并窃取数据库存储的重要信息。SQL注入的存在严重影响SQL所支持应用和系统的灵活性和安全性,不仅仅威胁到了Web应用的安全,而且任何使用从不可信源获得输入内容来构造SQL语句的代码都存在被攻击的可能。当前以SQL注入为代表的漏洞攻击已经成为入侵数据库驱动网站的第一选择,利用SQL注入对网络实施攻击也成了盗窃网站敏感数据最常用的方式之一。
本论文主要研究针对网站的SQL注入攻击,从攻击者和网站系统管理员这两个对立的角度来对SQL注入攻击进行针对性的分析。结合理论梳理和实验探究,对SQL注入攻击的原理、方式、实施过程进行分析。总结产生SQL注入的内外原因,继而从攻击者和网站管理员的角度提出防范SQL注入的一些实用建议,希望能够在一定程度上降低网站被入侵的风险,从而提高系统和数据的安全性。
 查看完整论文请+Q: 351916072 
关键字:SQL注入攻击;入侵;网站
目 录
1.引 言 1
1.1 研究背景 1
1.2 研究目的 1
1.3 论文研究内容与结构 2
2. SQL注入攻击相关技术介绍 3
2.1 SQL相关技术 3
2.2 Web应用相关技术 3
2.3 SQL注入技术 4
3. SQL注入攻击的原理 6
3.1 SQL注入漏洞产生的原因 6
3.2 SQL注入攻击产生的过程 7
3.3简单的模拟攻击 9
4.攻击者角度分析SQL注入 12
4.1寻找注入点 12
4.1.1触发SQL注入 12
4.1.2常规手动寻找SQL注入 15
4.1.3自动化寻找SQL注入 15
4.2确认注入点 16
4.2.1验证注入点有效性实验 16
4.2.2判断数据库类型 18
4.2.3猜解数据库信息 21
4.3利用注入进行攻击 24
4.3.1构造SQL语句 24
4.3.2使用UINON语句提取数据 27
4.3.3枚举数据库模式 28
4.3.4提升权限 28
4.3.5破解口令 29
5.网站管理者角度分析SQL注入 30
5.1 网站安全管理概况 30
5.2 设计阶段避免SQL注入 31
5.2.1使用参数化语句 31
5.2.2输入验证 32
5.2.3编码输出 32
5.3 日常管理中避免SQL注入 33
5.3.1监控SQL注入 33
5.3.2处理SQL注入 34
5.3.3主动防御SQL注入 34
结 语 36
参考文献 37
致 谢 38
1.引 言
1.1 研究背景
随着计算机技术的不断发展,互联网已经成为人们日常生活的重要组成部分,在政府、商业、教育、医疗等诸多社会领域中都有应用。互联网技术带动了各行各业的发展,使社会步入了信息化时代。但是,在享受这一科技成果的同时,其背后的信息安全隐患也应当引起我们的足够重视。SQL注入攻击目前已经成为网络攻击中最惯用的方式之一,在网络上随意搜索就可以发现大量的相关技术研究和攻击辅助工具。这类攻击的不断加剧,一方面是因为Web应用的广泛应用和后台数据库中数据价值越来越高,大部分攻击行为主要受经济利益驱使。另一方面,相关辅助工具的泛滥降低了注入攻击的技术要求:当前绝大多数辅助工具实现了注入攻击的全程自动化,自动锁定目标、寻找注入点并进行验证、模式化攻击。攻击自动化的成功提升了攻击效率,也对网络安全构成了严重威胁。鉴于互联网行业的复杂性,网站数据安全形势不容乐观。
1.2 研究目的??
互联网及其相关行业的蓬勃发展使得用户与网站间的交互需求明显增多,目前主流网站系统的交互模式均采用B/S(浏览器/服务器)模式。这类交互以网页为平台,按照相应的规则提交表单到服务器,执行后的结果再由服务器返回给用户。基于这种模式开发的网站,如果设计不严密或者日常运营管理不严格都会产生SQL注入漏洞,给攻击者可乘之机。因而SQL注入成了攻击者经常利用的漏洞,大量的数据窃取正是借助WEB应用的SQL注入漏洞从而实现入侵。据调查,至少60%以上网站系统都存在被注入攻击的可能。综合服务器和数据库配置上的不完善,再加上精心构造的SQL恶意语句。攻击者可以通过SQL注入漏洞攻破服务器,获得服务器的控制权限并掌握数据库的敏感数据,最终会给网站造成不可避免的损失。然而人们对SQL注入攻击的认识还不够,很多程序员和网络管理员对这一安全漏洞还不够了解,希望本文的研究能够引起一定的重视,为防御SQL注入提供一定的参考。
1.3 论文研究内容与结构
本论文主要研究以下几个方面:
(1)对SQL注入的相关技术和背景进行分析。
(2)结合相关研究文献和实验,研究分析SQL注入攻击的方法和原理。
(3)从入侵者和网站系统管理者两个对立的角度对SQL注入攻击进行分析。
(4)综合研究成果,提出有实用价值的防范建议。
本论文结构安排如下:第一章:引言,简要介绍论文研究的背景,SQL注入攻击的危害的情况,以及本课题的来源和产生的背景,最后对全文结构给出安排。第二章:对SQL注入的相关技术进行梳理和总结。第三章:结合实验,探究注入攻击的特性及其常规过程。第四章:从非法入侵者的角度,研究SQL注入攻击的外部过程。第五章:从网站系统管理员的角度,研究产生SQL注入攻击的内在原因并提出实用建议。
2. SQL注入攻击相关技术介绍
2.1 SQL相关技术
SQL就是结构化查询语言,是Structured Query Language的缩写,是一种主流的数据库操作语言。SQL可以用来查询存储在数据库中的数据,并对数据进行管理。最初的SQL最先由IBM公司提出,时间大致在20世纪70年代。直到10年后年才被美国的国家标准协会规范化。
SQL查询由一条语句或者多条组合语句构成。SQL注入时最经常碰到的SQL语句是SELECT语句、INSERT语句、和UNION 语句。其中SELECT语句:SELECT语句主要用于查询操作,按照条件从数据库中查找数据,并将结果返回给查询者。执行SELECT * FROM Users语句将返回Users表中的所有数据。执行SELECT username FROM Users 语句将返回Users表中的所有行的username列。执行SELECT * FROM Users WHRER username = admin AND password = bylwsj 语句将返回username列的值为admin且password列的值为bylwsj的行。INSERT语句:INSERT语句用于向表中插入新的数据。执行INSERT INTO Users VALUES (1,admin ,bylwsj,0)按照新数据原先的排列顺序插入到表中。UPDATE语句:UPDATE语句可以用来更新表中已存储存的数据。执行UPDATE Users SET priv=0 WHERE username = bylwsj 语句将所username值为simon的priv列的值修改为0。DELETE语句:DELETE语句对表中的数据执行删除操作。执行DELETE FROM Users WHERE username= admin 语句将删除Users表中所有username值为admin的行。
2.2 Web应用相关技术
互联网已经成了我们生活中的不可分割的重要组成部分,如今绝大多数人的生活已经离不开Web应用。查找资料、聊天交流、电子商务、科研教育这些活动都需要Web应用的有效支撑。Web应用的实际形式丰富多样,无论通过哪种实现方,有一点是它们是相同的:有很强的交互能力,并且主要功能依赖来数据库驱动。数据库驱动的Web应用相当常见,主流的结构就是若干的Web页面和后台数据库,页面承载了Web应用的主要功能,介于用户和数据库之间和二者进行交互和逻辑处理。目前最常见的就是以网购平台为主的数据库驱动网站。电子商务网站的很多信息,如产品信息、库存水平、价格、邮费、包装成本等均保存数据库中,此外还包括了客户的重要信息。在网购行业发展迅猛的今天我们当中的很多人每天都从电商那购买自己需要的商品,对这种类型的应用人们接触的很频繁。本文研究的SQL注入就是针对Web应用中的网站系统,采用的B/S模式,是一种三层架构的计算模式。结构如下:
图2-1网站系统的三层架构
第一层是和用户进行直接交互的表示层,由Web应用的客户端作为表示层。用户只需要安装一个Web浏览器。浏览器中无需存放任何数据,首先把用户的请求传递给服务器,接着再把后台的执行结果显示给用户,因而用户不用进行繁琐的管理工作。第二层是服务逻辑层。根据实际需要由数台服务器组成,作为逻辑业务处理平台,接收客户端发来的请求进行处理,然后解析为指令传递给服务器执行。最后再把处理数据库反馈的执行结果发送至表示层。第三层是数据存储层,该层最重要的一部分就是数据库系统,在该层数据库服务器按照服务逻辑层的要求对数据进行管理。Web应用充分利用了B/S模式的优势,对用户运行环境的要求不高,可以使用不同的终端以相同的功能访问系统,优良的拓展性等,有效地降低了整个系统的运行和维护成本。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3365.html

好棒文