预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SQL注入攻击原理和攻击实例 摘要: 随着网络技术的迅猛发展,计算机网络已经成为人们工作生活中的重要组成部分,在各个领域迅速普及,整个社会对其的依赖程度越来越大。随着网路安全意识的增强,单一方法的渗透测试已经不能满足远程渗透的需要。更为有效的远程渗透测试采用的是渐进式的综合攻击技术,突破内网提取目标主机的权限,以最终获取机密资料。因此SQL注入攻击为主的web脚本攻击作为进入内网的首选,成为黑客渗透测试中重要的技术之一。 关键字: SQL注入,web应用程序IIS防范 什么是SQL注入攻击 SQL注入(StructuredQueryLanguageInjection)技术在国外最早出现在1999年,我国在2002年后开始大量出现,目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述: (1)脚本注入式的攻击 (2)恶意用户输入用来影响被执行的SQL脚本 SQL注入,就是攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到让后台数据库执行恶意的SQL命令的目的,并根据程序返回的结果,获得某些攻击者想得知的数据。 可能导致SQL注入的隐患 1、随着B/S(浏览器/服务器)模式应用开发的发展,从事动态网页以及脚本编程的程序员越来越多,在一段不长的时间里,新手往往就已经能够编出看来比较完美的动态网站,在功能上,很容易就能实现。但是因为程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候存在漏洞,给攻击者提供便利条件。 2、系统对用户输入的参数不进行检查和过滤,没有对用户输入数据的合法性进行判断,或者程序中本身的变量处理不当,使应用程序存在安全隐患。 3、因为SQL注入主要是针对web应用程序提交数据库查询请求的攻击,与正常的用户访问没有什么区别,所以能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的访问权限。 SQL注入的主要危害 1、未经授权状况下操作HYPERLINK"http://soft.chinabyte.com/database/"\t"_blank"数据库中的数据,比如管理员密码,用户密码等信息; 2、恶意篡改网页内容,宣传虚假信息等; 3、私自添加系统帐号或者是数据库使用者帐号; 4、网页挂广告、HYPERLINK"http://www.chinabyte.com/keyword/%E6%9C%A8%E9%A9%AC/"\t"_blank"木马病毒等; 5、上传webshell,进一步得到系统权限,控制电脑.获得肉鸡。 SQL注入的特点 广泛性: SQL注入攻击可以跨越Windows、UNIX、Linux等各种操作系统进行攻击,其攻击目标非常广泛。而且当前web应用程序应用广泛,而存在的漏洞也都大体具有相似性。 隐蔽性 SQL注入是从正常的www(80)端口访问,它是为HTTP即超文本传输协议开放的,是万维网传输信息使用最多的协议。通过该端口的数据都是被防火墙所许可的,因此防火墙不会对SQL注入的攻击进行拦截,使得攻击者可以顺利的通过防火墙。如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 3、攻击时间短 可在短短几秒到几分钟内完成一次数据窃取、一次木马种植、完成对整个数据库或Web服务器的控制。 4、危害大 目前的电子商务等都是基于WEB的服务,交易量巨大,一旦遭到攻击后果不堪设想。另一方面,是关于个人信息的窃取,用之前的CSDN用户资料泄露来说引起了很大的社会反响。 SQL注入攻击实现原理 SQL注入攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。这类应用程序一般是Web应用程序,它允许用户输入查询条件,并将查询条件嵌入SQL语句中,提交到数据库中执行。通过构造畸形SQL语句攻击者能够获取额外的信息数据。 当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。SQL注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或者作为存储过程的输入参数,这些表单特别容易受到SQL注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是SQL注入就发生了。 SQL注入是从正常的WWW端口访问,而且表面看起