【TechTarget中国原创】 SQL注入攻击是大部分负责面向互联网站点的DBA最头疼的问题。一个面向公众的页面,管理员无法对输入进行控制,那么最终的结果,很可能是产生一个垃圾数据库。
我不是在毫无根据地危言耸听,因为我曾经历过几次这样的灾难。
我按自己的方式做,每天对所有东西备份,这样的习惯让我受益匪浅。但是只需这样一件事情就足以说服我:我需要在管理方式,甚至是来自web的最琐碎的页面处理输入方面做得更好。
我曾经用过一个用来判断给定网站在SQL注入攻击方面的脆弱性的工具,它就是html" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px auto; color: rgb(0,0,0); padding-top: 0px; text-decoration: underline" target="_blank">sqlmap 。它是一个开源的命令行工具,可以检测到针对很多种数据库系统(包括微软的SQL Server)的注入攻击。它是用Python编写的,因此它可以运行在支持Python的任何平台上,但是Windows用户可以下载自带的可执行程序,不需要对Python完全安装就可以运行。
运行sqlmap需要你给它提供至少一个参数,这个参数就是你希望测试是否存在sql注入漏洞的URL。这个URL至少要带有一个参数;除此以外,你还可以测试支持手工输入的GET/POST参数,HTTP cookie或者用户代理字符串。可用的选择范围很广,因此要明确知道你可以测试什么以及如何测试,通读文档可能是个好主意。
注意: 例如,由于许多页面流程用户代理字符串要进行判断,不管它是否加载网站的低带宽版本,所以用户代理本身已经变成了一种攻击方向。
而且,最基本的利用sqlmap程序的方式是传递给它一个URL,其中带上一些参数。这样一来,sqlmap会尝试利用这些参数的每一个作为一个攻击向量,利用各种注入技术做尝试。然后,它会把每个参数的尝试结果返回报告,前缀是“【警告】” 的状态行。报告结果会非常详细,因此你可以利用参数“-v”切换对结果详细程度的控制(使用“-v 0”表示报告内容最少)。它还可以针对以文件形式提供的URL列表,或者甚至是通过谷歌搜索你的网站无意中发现的漏洞暴露的“Google dork”页面进行测试。
Sqlmap最出色的特性之一是基于你采用的数据库类型和宿主操作系统类型手工定制测试。例如,在SQL Server中,有测试来检查是否底层系统能执行任意shell代码,能操作Window注册表配置单元安装,添加或者删除。所有这些攻击都是已经有概念验证代码或者一些已经出现过的非常规攻击类型,可见我们不是在谈论假想的事情。
Sqlmap项目已经被发布为GPLv2项目 ,因此你可以免费对它进行再发布,或者在授权许可的范围内自行修改它。