网站首页学无止境LINUX

Linux下五大著名的免费SQL注入漏洞扫描工具

发布时间:2014-11-27 22:45:45编辑:songlin阅读(116)

    大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多安全问题。Web应用程序中的漏洞可使黑客获取对敏感信息(如个人数据、登录信息等)的直接访问。

    Web应用程序准许访问者提交数据,并可通过互联网从数据库中检索数据。而数据库是多数Web应用程序的心脏。数据库维持着Web应用程序将特定内容交给访问者的数据,Web应用程序在将信息交给客户、供应商时,也从数据库取得数据。

    SQL注入攻击是最为常见的Web应用程序攻击技术,它会试图绕过SQL命令。在用户输入没有“净化”时,如果执行这种输入便会表现出一种SQL注入漏洞。

    检查SQL注入漏洞主要涉及到两方面,一是审计用户的Web应用程序,二是通过使用自动化的SQL注入扫描器执行审记的最佳方法。在此,笔者罗列了一些对Web应用程序开发人员和专业的安全审计人员有价值的SQL注入扫描程序。

    一、SQLIer

    SQLIer 可以找到网站上一个有SQL注入漏洞的URL,并根据有关信息来生成利用SQL注入漏洞,但它不要求用户的交互。通过这种方法,它可以生成一个UNION Select查询,进而可以强力攻击数据库口令。这个程序在利用漏洞时并不使用引号,这意味着它可适应多种网站。

    SQLIer通过“true/false”SQL注入漏洞强力口令。借助于“true/false” SQL注入漏洞强力口令,用户是无法从数据库查询数据的,只能查询一个可返回“true”、“false”值的语句。

    据统计,一个八个字符的口令(包括十进制ASCII代码的任何字符)仅需要大约1分钟即可破解。

    其使用语法如下,sqlier [选项] [URL]

    其选项如下:

    -c :[主机] 清除主机的漏洞利用信息

    -s :[秒]在网页请求之间等待的秒数

    -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开。

    -w:[选项]将[选项]交由wget

    此外,此程序还支持猜测字段名,有如下几种选择:

    --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开。

    --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开。

    --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开。

    下面说一下其基本用法:

    例如,假设在下面的URL中有一个SQL注入漏洞:

    http://example.com/sqlihole.php?id=1

    我们运行下面这个命令:

    sqlier -s 10 http://example.com/sqlihole.php?id=1从数据库中得到足够的信息,以利用其口令,其中的数字“10”表示要在每次查询之间等待10秒钟。

    如果表格、用户名字段、口令字段名猜测得正确,那么漏洞利用程序会把用户名交付查询,准备从数据库中强力攻击口令。

    sqlier -s 10 example.com -u BCable,administrator,root,user4

    然而,如果内建的字段/表格名称没有猜中正确的字段名,用户就可以执行:

    sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]

    除非知道了正确的表格名、用户名字段、口令字段名,SQLIer就无法从数据库中强力攻击口令。如图1:

     

    \

     

    图1

    二、SQLMap:http://www.3800hk.com/Soft/zhly/16504.html

    这是一个自动的“盲目”SQL注入工具,它用python开发,它能执行一个动态的数据库管理系统指纹识别,可以完整地穷举远程数据库。其目标是实施一个完整的功能性数据库管理系统工具,它能够利用Web应用程序程序设置的全部缺陷,这些安全缺陷可以导致SQL注入漏洞。

    在 SQLMap检测到目标系统上的一个或多个SQL注入漏洞之后,用户就可以从多种选项中选择,进而执行全面的后端数据库管理系统指纹识别,检索数据库管理 系统会话用户和数据库,穷举用户、口令哈希、数据库,运行其自身的SQL Select语句,读取文件系统上的特定文件等。

    此软件完全支持MySQL、 oracle、PostgreSQL、Microsoft SQL Server等后端数据库管理系统。此外,它还识别微软的Access数据库,以及DB2、Informix、 Sybase 、 Interbase等。

    其使用方法如下:

    sqlmap.py [选项] {-u | -g | -c <配置文件>}

    其中,-u URL指明目标URL

    -g google dork 将google dork结果处理为目标url

    三、SQID:http://sqid.rubyforge.org/

    此工具是一个SQL注入漏洞挖掘器,是一个命令行实用程序,它能够查找SQL注入漏洞和网站中的常见错误。它可以执行以下几种操作:查找网页中的SQL注入漏洞,测试提交的表单,查找SQL注入漏洞的可能性。它还支持HTTP、HTTPS、基本身份验证等。

    其用法如下:

    Sqid.rb [选项]

    其选项有以下几种:

    -m,--mode MODE,它指明以某种模式进行操作,其中MODE有以下几种情况:g,google:以google搜索模式操作;u,url检查这个url;p,page,它主要检查单一的网页;c,crawl,检查站点。

    其中,google搜索模式选项有以下几种情况,-q,--quary 查询,QUERY执行google搜索;-s,--start START,对所需要的首个结果的零索引;-r,--results RESULTS,在此指明所需要的结果数量,默认值为20。

    四、SQL Power Injector

    SQL Power Injector可帮助渗透测试人员找到并利用网页上的漏洞。目前,它支持SQL Server、Oracle、MYSQL、Sybase/Adaptive Sever和DB2等数据库,但在使用inline注入时,还可借助现有的数据库管理系统来使用此软件。

    其自动化的工作模式以两种方式进行,一是比较期望的结果,二是根据时间延迟。

    其工作状态如图2:

     

    \

     

    图2

    五、SQLNinja:http://sqlninja.sourceforge.net/

    Sqlninja 可以利用以SQL Server为后端数据支持的应用程序的漏洞,其主要目标是提供对有漏洞的数据库服务器的远程访问。Sqlninja的行为受到配置文件的控制,它告诉了 Sqlninja攻击的目标和方式,还有一些命令行选项。比如,有如下一些命令选项:

    -m<攻击模式>,其攻击模式有测试(test)、指纹识别(fingerprint)、强力攻击(bruteforce)等;

    其它的命令选项,-v : 指明进行详细输出;-f<配置文件>:指明一个使用的配置文件。-w<单词列表>指明以强力攻击模式使用的单词列表。

    如图3是运行过程界面:

     

    \

     

    图3