sqlmap学习笔记(二)
之前写的相当于一个简单的概要,接下来较为详细地介绍一下sqlmap的各种功能。
0x01 sqlmap三种请求类型的注入检测
GET方式:
http://localhost/amber/get.php?a=amber
理解在URL链接中显示并传输数据的方式就是GET方式。
sqlmap GET方式注入检测:
sqlmap.py -u "URL"
POST方式:
http://loaclhost/amer/post.php
POST数据:a=amber
sqlamp POST方式注入检测:
sqlmap.py -u "URL" --data "POST数据"
Cookie方式:
http://localhost/amber/cookie.php
COOKIE数据:a=amber
sqlmap Cookie方式注入检测:
sqlmap.py -u "URL" --cookie "Cookie数据"
0x02 获取数据库相关信息
1. 常见数据库类型:
- Microsoft SQL Server
- Mysql
- Orcle
- PostgreSQL
2. 获取数据库类型及版本
直接使用注入方式的检测语法即可获取数据库类型及版本
屏幕截图.jpg
3. 获取当前网站所使用的数据库名和用户名
遇到Microsoft Access的注入点不需要获取其数据库名。
对于Mysql这样的数据库使用如下语法:
sqlmap.py -u "目标url" --current-user --current-db
0x03 获取数据量和用户权限
1. 获取数据库的数据量
为什么要获取数据量?
拿到了数据库却又因为授权问题不能查看数据库里面的内容,只好来
看数据量大小来判断注入点危害了
方法:
sqlmap.py -u "目标url" --count -D "库名称"
2. 判断用户权限
为什么要判断用户权限?
搞了这么久为什么我这个注入点什么也干不了(写webshell等),没有事先判断好权限,浪费了不必要的时间
方法:
1.sqlmap.py -u "目标url" --privileges
2.更简单的,可以通过用户名判断权限
Microsoft SQL Server最高权限用户名:sa
Mysql最高权限用户名:root
0x04 延时注入
1. 什么情况下进行延时注入
SQL注入漏洞的过程中,页面无变化、无法用布尔真假判断、无法报错的情况下就可以使用延时注入技术。但缺点是耗时长。
2. 如何延时注入
sqlmap.py -u "目标url" --delay 数值 数值为延时的秒数
sqlmap.py -u "目标url" -safe-freq
0x05 sqlmap写webshell
1. 交互式命令
需要注意的是这里的注入点必须为最高权限才可以进行下面的操作
sqlmap.py -u "目标url" --os-cmd=命令
(注意在使用交互式参数时要知道网站的绝对路径,可以参考)
而在我们执行的时候,sqlmap是创建了一个文件
屏幕截图.jpg
这个文件也是被创建在我们网站的绝对路径下,执行完指定命令后会自动删除。
2. 写webshell
sqlmap.py -u "目标url" --os-shell
之后进行一些简单的填写,完成后可以看到生成了一个这样的文件
屏幕截图.jpg
通过这个页面我们可以上传自己的脚本木马
0x06 批量检测注入漏洞
sqlmap可以批量检测注入漏洞
sqlmap.py -m 注入点文件
屏幕截图.jpg
在这里结合Burp可以进行更加强大的批量处理