SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。
随着B/S模式被广泛的应用,用这种模式编写应用程序的程序员也越来越多,但由于开发人员的水平和经验参差不齐,相当一部分的
开发人员在编写代码的时候,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断,导致了***者可以提交一段数据库查询代码,根据程序返回的结果,获得一些他想得到的数据。
SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的web访问没有区别,隐蔽性极强,不易被发现。
SQL注入过程
![]() |
如上图所示,SQL注入***过程分为五个步骤:
第一步:判断Web环境是否可以SQL注入。如果URL仅是对网页的访问,不存在SQL注入问题,如:
[url]http://news.xxx.com.cn/162414739931.shtml[/url]就是普通的网页访问。只有
对数据库进行动态查询的业务才可能存在SQL注入,如:
[url]http://www.google.cn/webhp?id[/url]=39,其中?id=39表示数据库查询变量,这种语句会在数据库中执行,因此可能会给数据库带来威胁。
第二步:寻找SQL注入点。完成上一步的片断后,就要寻找可利用的注入漏洞,通过输入一些特殊语句,可以根据浏览器返回信息,判断数据库类型,从而构建数据库查询语句找到注入点。
第三步:猜解用户名和密码。数据库中存放的表名、字段名都是有规律可言的。通过构建特殊数据库语句在数据库中依次查找表名、字段名、用户名和密码的长度,以及内容。这个猜测过程可以通过网上大量注入工具快速实现,并借助破解网站轻易破译用户密码。
第四步:寻找WEB管理后台入口。通常WEB后台管理的界面不面向普通用户
开放,要寻找到后台的登陆路径,可以利用扫描工具快速搜索到可能的登陆地址,依次进行尝试,就可以试出管理台的入口地址。
第五步:***和破坏。成功登陆后台管理后,接下来就可以任意进行破坏行为,如篡改网页、上传***、修改、泄漏用户信息等,并进一步***数据库服务器。
SQL注入***的特点:
变种极多,
有经验的***者会手动调整***参数,致使***数据的变种是不可枚举的,这导致
传统的特征匹配检测方法仅能识别相当少的***,难以防范。
***过程简单,目前互联网上流行众多的SQL注入***工具,***者借助这些工具可很快对目标WEB系统实施***和破坏。
危害大,由于WEB编程语言自身的缺陷以及具有安全编程能力的开发人员少之又少,大多数WEB业务系统均具有被SQL注入***的可能。而***者一旦***成功,可以对控制整个WEB业务系统,对数据做任意的修改,破坏力达到及至。
SQL注入的危害和现状
SQL注入的主要危害包括:
未经授权状况下操作数据库中的数据
恶意篡改网页内容
私自添加系统帐号或者是数据库使用者帐号
网页挂***
……
据赛门铁克2006年3月的互联网安全威胁报告(第九期)显示:
恶意篡改网页内容
私自添加系统帐号或者是数据库使用者帐号
网页挂***
……
据赛门铁克2006年3月的互联网安全威胁报告(第九期)显示:
目前有近70%的***行为是基于WEB应用,而据CVE的2006年度统计数据显示,SQL注入***漏洞呈逐年上升的状态,2006年更是达到了惊人的1078个,而这些还仅限于通用应用程序的漏洞,不包括更为庞大的专业web应用程序所存在的漏洞。
而针对SQL注入漏洞的各种***工具和***教程更是层出不穷,掌握1~2种***工具的script guy(脚本小子)就可以轻易的攻破网络数据库的防线:篡改数据、获得权限……
转载于:https://blog.51cto.com/hanbing/98859