大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多
安全问题。Web应用程序中的
漏洞可使
黑客获取对敏感信息(如个人数据、登录信息等)的直接访问。
bZ?MK-qil
M6c0 Web应用程序准许访问者提交数据,并可通过
互联网从数据库中检索数据。而数据库是多数Web应用程序的心脏。数据库维持着Web应用程序将特定内容交给访问者的数据,Web应用程序在将信息交给客户、供应商时,也从数据库取得数据。
IJtlCv;yP)R}$?0 SQL注入攻击是最为常见的Web应用程序攻击技术,它会试图绕过SQL命令。在用户输入没有“净化”时,如果执行这种输入便会表现出一种SQL注入漏洞。
,i/g!wl wnB0 检查SQL注入漏洞主要涉及到两方面,一是审计用户的Web应用程序,二是通过
使用自动化的SQL注入
扫描器执行审记的最佳方法。在此,笔者罗列了一些对Web应用程序开发人员和专业的安全审计人员有价值的SQL注入扫描程序。
IXPUB技术博客OfW}nq7L 一、SQLIerIXPUB技术博客pv8BMVx5VY3W+I SQLIer可以找到网站上一个有SQL注入漏洞的URL,并根据有关信息来生成利用SQL注入漏洞,但它不要求用户的交互。通过这种方法,它可以生成一个UNION SELECT查询,进而可以强力攻击数据库口令。这个程序在利用漏洞时并不使用引号,这意味着它可适应多种网站。
IXPUB技术博客8LX@[*_{:x SQLIer通过“true/false”SQL注入漏洞强力口令。借助于“true/false” SQL注入漏洞强力口令,用户是无法从数据库查询数据的,只能查询一个可返回“true”、“false”值的语句。
mBUfp0v?S+F0 据统计,一个八个字符的口令(包括十进制ASCII代码的任何字符)仅需要大约1分钟即可破解。
~ `f8Xp1N3xc6Z0 其使用语法如下,sqlier [选项] [URL]
6G6zja)c8IP}Oo#y0 其选项如下:
sS%r*y.p0 -c :[主机] 清除主机的漏洞利用信息
IXPUB技术博客 aI2P&I3I -s :[秒]在网页请求之间等待的秒数
q V0Kw:E"Pj0 -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开。
V e;veB3x!Jb0 -w:[选项]将[选项]交由wget
)jocm!hR(Y:W0 此外,此程序还支持猜测字段名,有如下几种选择:
IXPUB技术博客(K ^/GSDCV/| --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开。
IXPUB技术博客w@F9Z
Br~ --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开。
IXPUB技术博客#tfs,E0S1XKin --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开。
IXPUB技术博客!bN
M*KgJ 下面说一下其基本用法:
IXPUB技术博客*|2ws(m'u,N 例如,假设在下面的URL中有一个SQL注入漏洞:
~K
p;x0m@|'DiF0 http://example.com/sqlihole.php?id=1
IXPUB技术博客 V;C mh'U`[(x XHk2Pa 我们运行下面这个命令:
IXPUB技术博客:XQ7^NV;~*\ sqlier -s 10 http://example.com/sqlihole.php?id=1从数据库中得到足够的信息,以利用其口令,其中的数字“10”表示要在每次查询之间等待10秒钟。
IXPUB技术博客E5]E/r"YJA!TZ!^%\ 如果表格、用户名字段、口令字段名猜测得正确,那么漏洞利用程序会把用户名交付查询,准备从数据库中强力攻击口令。
IXPUB技术博客c5mph&|;Br'U sqlier -s 10 example.com -u BCable,administrator,root,user4
IXPUB技术博客-c5] f7E E+iL 然而,如果内建的字段/表格名称没有猜中正确的字段名,用户就可以执行:
IXPUB技术博客xe${jG0^
s7d~ sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
9|$_}d_0 除非知道了正确的表格名、用户名字段、口令字段名,SQLIer就无法从数据库中强力攻击口令。如图1:
IXPUB技术博客^e$O:@i\'h&M
二、SQLMap:IXPUB技术博客/Jr|S+dMG"x 这是一个自动的“盲目”SQL注入
工具,它用python开发,它能执行一个动态的数据库管理系统指纹识别,可以完整地穷举远程数据库。其目标是实施一个完整的功能性数据库管理系统工具,它能够利用Web应用程序程序设置的全部缺陷,这些安全缺陷可以导致SQL注入漏洞。
i
K/qP5X9A9Pa0 在SQLMap检测到目标系统上的一个或多个SQL注入漏洞之后,用户就可以从多种选项中选择,进而执行全面的后端数据库管理系统指纹识别,检索数据库管理系统会话用户和数据库,穷举用户、口令哈希、数据库,运行其自身的SQL SELECT语句,读取文件系统上的特定文件等。
IXPUB技术博客_} BK8{vC1@ 此软件完全支持MySQL、 Oracle、PostgreSQL、Microsoft SQL Server等后端数据库管理系统。此外,它还识别
微软的Access数据库,以及DB2、Informix、 Sybase 、 Interbase等。
'e(t(e8Y2n0b0 其使用方法如下:
IXPUB技术博客'_|&Y&F8B sqlmap.py [选项] {-u -g -c <配置文件>}
u2V\bIG
{ Z0 其中,-u URL指明目标URL
R&X)_&~,LKB'F0 -g google dork 将google dork结果处理为目标url
w9x5P^ K!W(tC1g
E0 三、SQLID:IXPUB技术博客ZK a9tE 此工具是一个SQL注入漏洞挖掘器,是一个命令行实用程序,它能够查找SQL注入漏洞和网站中的常见错误。它可以执行以下几种操作:查找网页中的SQL注入漏洞,测试提交的表单,查找SQL注入漏洞的可能性。它还支持HTTP、HTTPS、基本身份验证等。
IXPUB技术博客,?0n
F"d&FD8\6s 其用法如下:
8n"`3jH#U6G&b6s&Z
EWJ0 Sqid.rb [选项]
IXPUB技术博客FMQDz4JB5A![4A 其选项有以下几种:
IXPUB技术博客;Rt\ gf0CyR -m,--mode MODE,它指明以某种模式进行操作,其中MODE有以下几种情况:g,google:以google搜索模式操作;u,url检查这个url;p,page,它主要检查单一的网页;c,crawl,检查站点。
VrV3L6d^1O0 其中,google搜索模式选项有以下几种情况,-q,--quary 查询,QUERY执行google搜索;-s,--start START,对所需要的首个结果的零索引;-r,--results RESULTS,在此指明所需要的结果数量,默认值为20。
四、SQL Power Injector-M \h9w7t%f'H0 SQL Power Injector可帮助渗透测试人员找到并利用网页上的漏洞。目前,它支持SQL Server、Oracle、MYSQL、Sybase/Adaptive Sever和DB2等数据库,但在使用inline注入时,还可借助现有的数据库管理系统来使用此软件。
#@_N4W"O0q7G-_0 其自动化的工作模式以两种方式进行,一是比较期望的结果,二是根据时间延迟。
IXPUB技术博客V'h x'Q.ek 其工作状态如图2:
K
bCLp0
IXPUB技术博客'q|gjwE}U 图2
IXPUB技术博客dK{/@5t`wrcYV1{ 五、SQLNinja:IXPUB技术博客#y`b:A#{n1e Sqlninja可以利用以SQL Server为后端数据支持的
应用程序的漏洞,其主要目标是提供对有漏洞的数据库
服务器的远程访问。Sqlninja的行为受到配置文件的控制,它告诉了Sqlninja攻击的目标和方式,还有一些命令行选项。比如,有如下一些命令选项:
*W%us,\3{4z0 -m<攻击模式>,其攻击模式有测试(test)、指纹识别(fingerprint)、强力攻击(bruteforce)等;
t:f!UW"\.w pU0 其它的命令选项,-v : 指明进行详细输出;-f<配置文件>:指明一个使用的配置文件。-w<单词列表>指明以强力攻击模式使用的单词列表。
IXPUB技术博客br)^9Z2s[
I 如图3是运行过程界面:
IXPUB技术博客ag$PZ:b8x bZ#~\r