SQL注入是一种安全漏洞。攻击者可以利用这个安全漏洞向网络表格输入框中添加SQL代码以获得访问权。手工测试SQL注入的方法过去一直是确定数据库是否存在安全漏洞的惟一方法。挖掘返回的错误信息、增加省略符号并且设法猜测数据库结构信息是一项长期的和艰苦的过程。而且,这并不能保证你发现所有的SQL注入安全漏洞,很少能够查看或者提取数据。
现在,有一些工具能够实施AQL注入攻击。一些免费的和商业性的黑客工具都能够实施这种攻击。
如果你有一个连接到后端数据库的Web前端,允许asp、ASP、.NET、CGI和类似的脚本语言支持的动态用户输入,你就可能遭到SQL注入攻击。你能做的就是以道德黑客(ethical hacking)的方式对你自己的系统实施自动的SQL注入攻击,以便发现能够在外部攻破什么东西。不要选择这个或者省略那个,让你的工具为你做工作。
这是以自动的方式测试你的系统的AQL注入安全漏洞的两个步骤。我在这里简单介绍一下这个过程。
第一步:扫描安全漏洞
首先,你必须使用一个Web应用程序安全漏洞扫描器扫描逆的网站,看看是否存在任何输入过滤或者其它具体的SQL注入安全漏洞。由于我的时间总是很紧张并且需要良好的报告功能,我喜欢使用商用工具,如N-Stealth安全扫描器、Acunetix公司的Web安全漏洞扫描器和(我最喜欢的)SPI Dynamics WebInspect。Wikto等免费的工具通常也能发现这些安全漏洞。
图1显示的是WebInspect发现的两个不同的SQL注入安全漏洞的例子。
第二步:开始SQL注入
一旦你确定你的目标系统是否存在SQL注入安全漏洞,你的下一个步骤就是实施SQL注入过程并且确定能够从数据库中搜集到什么。请注意,我不建议注入实际的数据或者试图投放数据库表格,这两种做法对于你的数据库的安全是有害的。发现潜在的SQL注入漏洞是一回事,以自动的方式实际实施攻击是另一回事。
我喜欢的自动实施实际的SQL注入攻击的工具是SPI Dynamics公司的AQL注入器(这个工具是WebInspect软件的一部分)。你还可以使用图2显示的Absinthe。
实施自动的SQL注入攻击测试图2:Absinthe工具用于自动实施SQL注入分析。
这两种工具能够让你实施基本的和SQL盲注攻击。这两种测试都应该实施,特别是如果基本的SQL注入攻击没有返回任何结果的情况下。这些工具能够以自动的方式非常快地查询和提取数据,在几分钟之内就可以列印大量的表格。
其它选择包括Foundstone公司制作的一种免费的Web服务测试框架。这个工具的名称是“WSDigger”,能够实施基本的SQL注入攻击。你还可以使用Automagic SQL注入器进行一些自动的SQL注入查询。你还可以使用配置了SQL注入插件的“Sleuth”工具软件。但是,这个软件需要SA访问权限。这就消除了匿名外部测试的好处。
最后,如果你要在你现用的系统部外进行实际练习,并且学习更多的有关SQL注入和其它能够导致数据库被攻破的前端Web应用程序安全漏洞的知识,你可以查看Foundstone公司的“Hacme Bank”,或者参考一下Web安全演示工具“WebGoat”。
你使用什么工具自动实施SQL注入攻击测试都没有关系,只要你能够了解它们是如何工作的并且得到预期的结果就行了。就做黑客要做的事情就行了。
新闻热点
疑难解答