sql注入工具--Sqlmap

Sqlmap是一款自动化sql注入的工具,其功能强大,支持多种数据库,包括mysql,sqlserver等主流的数据库,采用独特的sql注入方法来达到自动化注入扫描漏洞的目的。

   1)基于布尔的盲注(Type:boolean-based blind),即可以根据返回页面判断条件真假的注入。
   2)基于时间的盲注(Type:time blind),即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
   3)基于报错注入(Type:error-based),即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
   4)联合查询注入(union query),可以使用union的情况下的注入。
   5)堆查询注入,可以同时执行多条语句的执行时的注入

1、sqlmap环境搭建

(1)python2.7版本下载

(2)sqlmap下载:http://sqlmap.org/,将sqlmap文件放在python2.7的文件夹下

(3)环境变量设置,添加sqlmap文件夹的环境变量

(4)打开命令窗口,输入sqlmap.py -h则安装成功

2、测试环境搭建

搭建一个包含了sql注入,xss等漏洞的测试环境以便学习sql注入知识点。

安装php环境:由于源码是php的则需要安装php的环境

(1)安装php环境:wampserver下载安装:Apache+mysql+php集成安装环境,简化该集合环境安装配置流程,减少了环境配置的繁琐

问题1:安装完成后打开时报错:

扫描二维码关注公众号,回复: 2196128 查看本文章

解决方案:http://blog.csdn.net/xiaoqiang_0719/article/details/52785604

下载安装:

 重启电脑即可。如果还是弹出该错误,首先检查下下载的软件是32位的还是64位的,第二可以卸载wampserver重新下载安装即可。

问题2:wampserver本地环境启动后显示橙色不显示绿色

解决方案:http://www.xuewangzhan.net/wenti/10270.html

80端口号被占用,修改端口号即可

将wampserver>bin>apache>apachex.xx>httpd.conf文件以下信息的端口号换成8080

Listen 0.0.0.0:80
Listen [::0]:80

改成:

Listen 0.0.0.0:8080
Listen [::0]:8080

右键图标refresh即可。

(2)准备测试源码dvwa:https://github.com/ethicalhack3r/DVWA

a.下载dvwa解压,解压到运行代码的位置,即将解压的安装包放在wampserver下的www文件夹下

b.复制dvwa解压的路径

c.图标鼠标右键Apache>http.config,修改文件

d.添加host:计算机>c盘>windows>system>drivers>etc>hosts,文件结尾添加127.0.0.1  dvwa的域名:dvwa.localhost,即127.0.0.1  dvwa.localhost,修改时显示权限不足时,在弹出的窗

口点击是即可

e.测试是否域名添加成功:打开命令窗口,ping dvwa.localhost

f.重启wampserver

(3)修改配置文件,添加数据库账号

a.打开dvwa>config>复制config文件,将文件后缀名改为php结尾

b.打开config.inc.php,修改用户名,密码,端口号(3306)

用户名为root,密码修改为空,端口号5432改为3306

c.浏览器打开http://localhost:8080/dvwa/setup.php,进入安装界面

d.点击Create/Reset Database创建数据库,过会页面会自动跳转到登录页面:

e.数据库的登录账号和密码获取:右键dvwa图标>phpMyadmin>users表:admin/password

f.登录dvwa,默认的用户名和密码为:admin/password,进入到以下的页面

3、sqlmap使用

 (1)获取系统的基本信息

登录dvwa,设置安全的等级,设置为low,网站的安全等级为low时才能进行注入测试。

点击SQL injection输入注入的信息,复制注入信息后提交的url

a.sqlmap的参数格式:

sqlmap.py -u 目标地址

sqlmap.py -u "http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="" --batch                      #不加入地址后面的#

查找注入点以及可注入的方式,得到数据库是mysql,以及数据库的版本,注入点的参数为id

sqlmap.py -r 保存的请求头文件:

谷歌浏览器>测试的网站右键>检查

>Networks>F5重新加载网站>选中网址信息右键>copy>copy request header

在sqlmap文件夹下新建一个文本文件重新命名,将复制的头文件的信息粘贴保存

(2)sqlmap数据库检测

通过sqlmap获取数据库的数据

a.查看数据库

sqlmap.py -u 目标地址 --cookie=“” --dbs:查看数据库名称

查找大数据库的名称为‘dvwa’

b.扫描数据表

查看数据库表名称:sqlmap.py -u 目标地址 --cookie=“” --table:查询出所有数据库的所有表

查询数据表数据:sqlmap.py -u 目标地址 --cookie=“” --dump:查询出所有数据表的所有数据

c.导出数据

sqlmap.py -u 目标地址 --cookie=“” --dump-all

e.指定数据库查询

dvma下所有数据表数据

(1)指定数据库名称查找数据表:sqlmap.py -u 目标地址 --cookie=“” -D 数据库名称 --dump

指定dvwa数据库查找到两个表:users,guestbook,查询结果:

(2)指定数据表名称查找数据表的数据:sqlmap.py -u 目标地址 --cookie=“” -D 数据库名称 --dump -T 数据表名称

指定查找dvwa数据库users数据表的数据查询结果:

(3)指定查询users表的表结构:

查询结果:

(4)破解密码

查询到了users表的数据后发现密码都是md5加密存储的

可以网上直接搜索md5解密,将加密后的字符解密后得到的admin用户的密码为:password

另外,也可以用sqlmap自带的字典破解密码:

在获取users数据表的过程中会出现问题选择,询问是否破解密码

最后破解密码显示为:

括号内的为破解后的密码

4、sqlmap 注入post

1、post注入参数介绍

2、如何使用post请求注入

sqlmap.py -u "url" --cookie="" --data=“post源码” --batch --smart

注:--batch --smart启发式判断,batch自动执行yes,smart智能判断

post源码的获取:

(1)dvwa网站>xss stored>输入参数点击提交

(2)复制提交后的url

(3)谷歌浏览器>测试的网站右键>检查>Network,复制cookie以及Form Data

选择view source复制:

(4)运行post注入测试

(5)刷新dvwa的网站查看注入的结果

3、如何快速地批量注入测试

sqlmap.py -l txt文件名 --batch --smart

text文件:请求的地址,请求的头信息以及Form Data即post源码信息

(1)谷歌浏览器>测试的网站右键>检查>Network,Request Header>view source

(2)新建text文件,第一行填写请求的网站地址及端口号,第二行开始粘贴复制的Request Header,最后粘贴复制的Form Data的view source信息,如下所示:

 (3)多个请求即批量注入,复制添加以上信息放在文件的后面,用分割符区分开保存即可
5、批量检测注入漏洞

sqlmap.py -g "url匹配" --batch --smart

转载自:点击打开链接

猜你喜欢

转载自blog.csdn.net/u012114090/article/details/81068968