论文-论网站如何防注入攻击_第1页
论文-论网站如何防注入攻击_第2页
论文-论网站如何防注入攻击_第3页
论文-论网站如何防注入攻击_第4页
全文预览已结束

下载本文档

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

文档简介

1、论网站如何防注入攻击摘要:随着网络技术的迅猛发展,计算机网络已经成为人们工作生活中的重要组成部分,在各个领域迅速 普及,整个社会对其的依赖程度越来越大。随着网路安全意识的增强,单一方法的渗透测试已经不能满足 远程渗透的需要。更为有效的远程渗透测试采用的是渐进式的综合攻击技术,突破内网提取目标主机的权 限,以最终获取机密资料。因此sql注入攻击为主的web脚本攻击作为进入内网的首选,成为黑客渗透测试 中重要的技术之一。本文以asp和sql server为例详细阐述了sql注入攻击的基本原理和过程,并从web应用 生命周期的各个环节出发,综合探讨防御sql注入攻击的有效方法和策略。关键词:sql注

2、入,攻击,防范,防注入攻击,网站安全。how to prevent sql injection attacks英文姓名字号:10, times new roman,斜体(但上角标为止体),标点用半角,如:大写,名词首犬写,名的字中间用“”连接,段前 14.75磅,行距 135磅。例如:zhang xiaxcm', lisp(英文单位(与中文单位严谨对应),地址(包括省、市、邮编)字号为10, times new roman,标点用半角,词首大写,行距13.5磅,段后空12.75磅)abstract: with the rapid development of network techn

3、ology, computer network has become an important part in people's life, the rapid popularization in various fields, the whole society more of its growing dependence with the increase of network security awareness, the single method of penetration test has been unable to meet the needs of remote p

4、enetration a more effective way of remote penetration test is used in progressive comprehensive attack technology, breakthrough extraction of the target host network permissions, to eventually obtain the confidential information. therefore, sql injection attack based web scripting attacks into the n

5、etwork as the preferred, become one of the most important technical hackers penetrate test. based on asp and server sql as an example, this paper expounds the basic principle and process of sql injection attack, and comprehensively discusses the effective methods and strategies of defending sql inje

6、ction attacks from all aspects of web application life cycle. key words: sql injection, attack ,prevention, anti attack, website security 0随着b/s模式应用开发的发展,使用这种模式 编写应用程序的程序员也越来越多。但是由于这 个行业的入门门槛不高,程序员的水平及经验也 参差不齐,相当大一部分程序员在编写代码的时 候,没有对用户输入数据的合法性进行判断,使 应用程序存在安全隐患。用户可以提交一段数据 库查询代码,根据程序返回的结果,获得某些他 想得知的数据,

7、这就是所谓的sql injection ,即 sql注入。1 sql注入攻击的基本原理所谓sql注入攻击1,就是攻击者把sql命令插 入到web表单的输入域或页而请求的査询字符串中, 欺骗服务器执行恶意的sql命令。在某些表单中,用 户输入的内容被宜接川來构造(或者影响)动态sql 命令,或作为存储过程的输入参数,这类表单特别容 易受到sql注入式攻击。sql注入过程中,攻击者通过从客户端提交构造 巧妙的sql代码,收集服务器返回的结果信息,从而 获取想要得到的资料并实施攻击。2 sql注入攻击实现原理sql注入攻击是存在于常见的多连接的应用程 序中的一种漏洞,攻击者通过在应川程序预先定义好

8、的查询语句结尾加上额外的sql语旬元素,欺骗数据 库服务器执行非授权的任意査询。这类应川程序一般 是web应用程序,它允许用户输入查询条件,并将查 询条件嵌入sql语句中,提交到数据库中执行。通 过构造畸形sql语句攻击者能够获取额外的信息数 据。当应用程序使用输入内容來构造动态sql语句 以访问数据库时,会发生sql注入攻击。如果代码使 用存储过程,而这些存储过程作为包含未筛选的用户 输入的字 符串來传递,也会发生sql注入。sql注 入可能导致攻击者使川应川程序登陆在数据库中执 行命令。如果应川程序使用特权过髙的帐户连接到数据 库,这种问题会变得很严重。在某些表单中,用户输 入的内容直接用

9、来构造动态sql命令,或者作为存储 过程的输入参数,这些表单特别容易受到sql注入 的攻击。而许多网站程序在编写时,没有对川户输入 的介法性进行判断或者程序中本身的变量处理不当, 使应用程序存在安全隐患。这样,用户就可以提交一 段数据库查询的代码,根据程序返回的结果,获得一 些敏感的信息或者控制整个服务器,于是sql注入就 发生了。sql注入是从止常的www端口访问,而且表 面看起来跟一般的web页面访问没什么区别,所以目 前市面的防火墙都不会对sql注入发出警报,如果管 理员没查看iis 口志的习惯,对能被入侵很长时间都 不会发觉。但是,sql注入的手法相当灵活,在注入 的时候会碰到很多意外

10、的情况,需要构造巧妙的sql 语句,从而成功获取想耍的数据。3 sql注入攻击的一般过程3.1检测是否有注入漏洞最简单的方法就是在测试山1的末尾附加一个单 引号,提交页血请求后查看服务器的响应悄况。如果 返冋错谋信息,则证明程序没有对单引号进行过滤, 有可能存在注入漏洞。当然,以上方法对那些实现单 引号过滤的应用程序不起作用,此时对以使用下面方 法进行检测。在测试url的后而分别加上"and 1 = 1 ”和"and 1=2 ” 两种注入参数并提交请求,若前者测试的返回结果为 正常页面,而后者测试的返回结果为错误信息,则说 明可以进行注入。其原理在于若后台程序存在注入漏 洞

11、,提交第一种参数则会构成sql语句“select * from 表名where id=25 and 1=1",由于逻辑正确服务器将 返冋正常页面;提交第二种参数则会构成sql语句 u select * from 表名 where id=25 and 1=2",由于逻 辑错误服务器会返冋错误信息。上例只是注入参数为 数字型的检测方法,实际应川时还可以使川字符型和 搜索型参数进行检测。3.2判断数据库类型一般与asp最常搭配的数据库是access和sql server,判断时可以从access和sql server的区别入手: access的系统表是msysobjects,且在

12、web环境卜没有 访问权限;而sql server的系统表是sysobjccts,在web 环境下可以被访问。由此,可在测试url的尾部注入 参数"and (select count (*) from sysobjects) >0" 并提交,如果返回止常页血,基本上可以断定是sql server数据库;如果返回错谋信息,则可以断定是 access数据库。3.3破解数据库名在注入点z后附加参数uand (select count (*) from master.dbo.sysdatabases where name> 1 and dbid=6) 0 ”來获取连接数

13、据库的名称。以下假设得 到的数据库名是testdbo3.4猜解用户名表的名称web用八的账号一般存放在一张表中,为了获取 数据库的访问权限,需要分析可能存放川户名与密码 的农的名称。常用的方法有猜解法和读取法:猜解法 根据个人的经验猜表名,通过在注入点后附加参数 "and (select count (*) from testdb.dbo.表名)>0” 实现;读取法通过构造注入参数访问sql server的系统 农sysobjects來实现。以下假设此表名为admin。3.5猜解用户名字段及密码字段的名称在注入点之后附加参数“and ( select top 1 col_nam

14、c ( objcct_id (' admin '),1) fromtestdb.dbo.sysobjects) >0” ,提交后根据返回的错误 信息得到已知表名的第-个字段名。以此类推,可以 得到所有的字段名称。3.6猜解用户名和密码基木方法是ascii码逐字解码法,其思路是先猗出 字段的长度,然后依次猜出每一位的值,具体过程不 再赘述。3.7寻找web管理后台入口可以利用扫描工具快速搜索可能的寰陆地址,依 次进行尝试即可。3.6入侵和破坏使用猜解的web账号,成功登陆到后台管理界 面,攻击者就町以任意进行破坏行为,如篡改网页、 上传木马、修改、泄漏用户信息等,并进一步入

15、侵数 据库服务器。另外,若当前连接数据库的帐号具有sa权限,且 master.dbo.xp_cmdshell扩展存储过程能够正确执行, 则通过巧妙构造注入参数运行系统命令,不仅可以设 置新的数据库账八获収访问数据库权限,还可以获得 windows用户甚至管理员的权限,开启远程登录服务, 实现对计算机的完全控制。这种方式下,以上38 步均可省略。4 sql注入攻击的防御方法4.1编码阶段的防御措施4.1.1对客户端的输入数据进行检查sql注入漏洞的成因在于web应川程序对丿ij户提 交的输入数据或页面中所携带的信息没冇进行充分 的检查过滤,使应用程序存在安全隐患。因此,防范 sql注入的基本措施

16、就是对用户的输入数据进行检查, 以保证提交数据不包律sql代码。具体措施包括:1) 对一些特殊字符,比如单引号、双引号、分 号、星号、右分号、连接符等进行转换或者过滤;2) 对数据类型有明确耍求的输入数据进行类型 验证;3) 对输入数据的长度进行必要的控制;4) 对数据库的各关键词如exec、insert> select、 delete update> count> mid、master、truncate> char、 declare> xp_、sp等进行过滤。4.1.2删除危险的和不必要的存储过程攻击者往往通过执行xp_cmdshell z类的扩展存 储过程,获

17、取系统信息,甚至控制、破坏系统。因此 开发人员应及时删除那些可能造成危害的存储过程, 如 xp_cmdshell、 xp_fileexist、 xp_getfiledetails、 xp_rcgadd multi string、xp_dirtrcc、xp_gctnctnamc、 xp_regdeletekeyn sp_oacreate> sp_oamethod 等。4.1.3 对 shell.application 和 wscript.shell 组件进行处理 以防范木马4.1.4控制sql用户访问数据库的权限只给访问数据库的web应用功能所需的最低的 权限,以限制用户只能访问必要资源。

18、同时,严格控 制对资源的读、写权限。4.1.5控制操作系统用户的权限一旦注入成功,可尽量降低破坏程度。4.1.6对emd系列命令进行权限限制单独对emd系列命令如cmd.exe、net.exe netl.exe、ping.exe、netstat.exe、ftp.exe、tftp.exe、 tclnct.exe等设置为只允许administrators组访问,以防 范通过其他的本地提升权限漏洞运行这些关键程序 的行为。4.1.7控制错误信息当应川程序出错吋应屏蔽服务器将详细错误信 息传冋到客户端的行为,建议釆収h定义错谋信息的 方式,禁止客户端查看更详细的内容。4.1.8不要以明文形式存放敏感性

19、数据(如账号密 码)4.1.9尽量避免使用拼接sql的方式进行查询使用拼接sql的方式进行数据库查询,会使应用 程序的女全性大打折扣。sql参数化查询是最简单有效 的避免sql注入的解决方案。在使用参数化查询的情 况下,数据库服务器不会将参数的内容视为sql指令 的一部份来处理,而是在数据库完成对sql指令的编 译后才套用参数运行。这样一来即使参数中含有恶意 的指令,也不会被数据库所运行。值得注意的是,即使采用参数化查询,z前提到 的对用户输入数据的检查和关键词的过滤等操作也 是需要的,这些操作能够帮助程序尽早地检查输入数 据的有效性。在实际web应川开发中,入口处的安全 检査是必要的,参数化杳询应作为最后一道安全防线。4.2测试阶段的防御措施在web应用的测试阶段应采取有效测试手段,全 面发现web应用程序本身的脆弱性及系统架构导致的 安全问题,以便及时进行加固处理,进一步提

温馨提示

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

评论

0/150

提交评论