如何发现并防御自动SQL注入攻击

日期: 2009-08-02 作者:Jamie Gamble and Patrick Szeto翻译:Sean 来源:TechTarget中国 英文

SQL注入是一类当你把用户输入用来构造SQL查询或是修改、管理数据库的命令时所产生的漏洞。如果在把用户输入追加到变化的SQL语句之前不先进行过滤处理,那么攻击者就可以修改查询语句,并产生开发者不愿意看到的结果。被修改的SQL语句可以执行当前数据库帐户权限所允许的任何操作,既可以操作数据库,还可以攻击数据库所在的系统和网络。   2008年,蠕虫病毒被用来攻击Web服务器,并植入可以感染受害站点用户的恶意代码。

该蠕虫病毒利用自动SQL注入攻击来修改数据库中的数据,这些数据将作为网页的一部分显示给用户。修改后的数据会被加载到网页上,并把用户重定向到另一个放有恶意软件的站点去。本文将带你看看防范这类……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SQL注入是一类当你把用户输入用来构造SQL查询或是修改、管理数据库的命令时所产生的漏洞。如果在把用户输入追加到变化的SQL语句之前不先进行过滤处理,那么攻击者就可以修改查询语句,并产生开发者不愿意看到的结果。被修改的SQL语句可以执行当前数据库帐户权限所允许的任何操作,既可以操作数据库,还可以攻击数据库所在的系统和网络。

  2008年,蠕虫病毒被用来攻击Web服务器,并植入可以感染受害站点用户的恶意代码。该蠕虫病毒利用自动SQL注入攻击来修改数据库中的数据,这些数据将作为网页的一部分显示给用户。修改后的数据会被加载到网页上,并把用户重定向到另一个放有恶意软件的站点去。本文将带你看看防范这类自动攻击的方法。

  这类攻击中有效载荷在浏览器中的执行方式使得这种攻击与持久化的跨站攻击很像。持久化的跨站攻击就是黑客把恶意代码植入到一个看起来可信的链接中的这样一种攻击。不同之处在于在自动SQL注入攻击中所植入的恶意程序有可能在网站的许多地方出现,而不是像跨站攻击中那样,只在包含用户输入的内容的地方出现。当用户浏览一个含有被感染数据的页面时,他/她就会被重定向到一个自动下载恶意软件到本机的页面去。

  在搜索引擎的帮助下实施自动SQL注入

  这些自动SQL注入蠕虫利用搜索引擎来搜寻可利用的站点来发动攻击。通过搜索相关与Web应用参数相联系的字符串,该蠕虫就能利用搜索引擎获取目标。该蠕虫还可能会搜寻特定的网页名称,如“ form.asp ”或表单参数名称,如“username ”。那些登陆验证表单通常易受SQL注入的攻击。等搜索引擎谷歌还提供高级搜索选项,如“ inurl : ” , “ allinurl : ”和“site: ” ,这使得蠕虫作者可以指定如何寻找这些参数,如“ inurl :username= “ 。蠕虫随后就启动SQL注入攻击来危害所确定的地点。通过攻击那些看起来要访问数据库的站点,蠕虫就不用在没有动态内容的网站上浪费时间。这使他们能够花更少的时间随机扫描可利用的目标,从而使得他们能够更快地传播。

  幸运的是,搜索引擎,例如谷歌已经对此产生了警觉并正在采取措施避免蠕虫搜寻攻击对象。疑似蠕虫发出的重复搜索将会被拒绝,以削弱蠕虫的搜寻能力。然而,一旦你的系统被蠕虫盯上了,依靠搜索引擎来延缓这些蠕虫并无法减轻它对你系统的危害。

  如何检测SQL注入漏洞

  例行应用程序数据库检查可以用来确定你的应用程序是否已经遭到破坏。在数据库里查询蠕虫常用的HTML标签可以揭示该应用正在传播恶意软件。这些标签包括"iframe", "http-equiv="refresh"" ,还有已经恶意服务器的IP地址。检测这种攻击的更简单办法是检查那些动态页面是否有非预期的行为,包括在HTML里增设隐藏的iframe-- 一种用来把一个HTML文件嵌入到另一个HTML文档的代码元素。这些例行的日常检查能帮你检查出系统遭到了攻击,但这种方法只能让你做到事后补救。把一个应用从攻击中恢复出来,得花非常大的代价,尤其是在数据可能被修改过的情况下,并且这种恢复还是无法防范今后的攻击。

  如何防止自动SQL注入攻击

  这些自动SQL注入蠕虫是利用应用程序中现有的漏洞来向数据库里插入恶意代码。消除Web应用程序中的SQL注入漏洞才是抵抗这些蠕虫的最好办法。进行充分的安全检查可以确定你的系统中是否存在漏洞。这些渗透测试通过使用许多与与攻击者相同的工具和技术来模拟攻击者并找出弱点。

  有很多种商业或免费的自动化工具,如 SQL Inject-Me,可以检测Web应用程序中的SQL注入漏洞。通过使用这些工具,开发和QA团队就可以在漏洞被黑客或蠕虫利用之前发现并修复它。

翻译

Sean
Sean

相关推荐