天天看点

sqlmap的使用手册0x01. Sqlmap支持的数据库0x02. 基本使用0x03. Sqlmap参数命令0x04 Sqlmap脚本使用

0x01. Sqlmap支持的数据库

SQLMap支持的数据库:
MySQL Oracle PostgreSQL Microsoft SQL Server
Microsoft Access IBM DB2 SQLite Firebird
Sybase SAP MaxDB

0x02. 基本使用

  • sqlmap   -u  ”URL“  --data ”POST数据“   查询注入点
  • sqlmap   -u  ”URL“  --data ”POST数据“  --dbs  列出数据库
  • sqlmap   -u  ”URL“  --data ”POST数据“   --current-user   获取当前用户名
  • sqlmap   -u  ”URL“  --data ”POST数据“   --current-db   获取当前数据库名称
  • sqlmap   -u  ”URL“  --data ”POST数据“   --passwords   数据库用户密码
  • sqlmap   -u  ”URL“  --data ”POST数据“   --is-dba -v 1  是否是管理员
  • sqlmap   -u  ”URL“  --data ”POST数据“   -D 库 --tables   查询表
  • sqlmap   -u  ”URL“  --data ”POST数据“   -D  库 -T  表  --columns  查询字段
  • sqlmap   -u  ”URL“  --data ”POST数据“   -D  库 -T  表 -C  字段,字段 --dump

SQLMap基本命令

  • --passwords#数据库用户密码
  • --is-dba #是否是数据库管理员
  • --os-shell 写shell
  • --cookie 当有验证的时候
  • --file-read 文件
  • --file-write 写文件
  • --flush-session 清除缓存
  • --threads=《number》设定线程数

0x03. Sqlmap参数命令

SQLMap参数命令
--method=<http方法> 指定使用的http方法
--data=<post数据> 提交post数据并对post数据进行测试
--param-del=<分隔符>  指定参数的分隔符
--cookie <cookie键值对> 添加cookie http请求头
--headers <http请求头字段和字段值> 添加http请求头,不同的头使用“(n”分隔
--auth-type和--auth-cred 指定认证方式并指定使用的凭证
--auth-file 指定使用的证书文件
--keep-alive 使用http长连接,该参数与--proxy参数矛盾
--null-connection 只获取http响应的长度(大小)而不获取真正的响应体,可以节约布尔型盲注使用的带宽
--threads=<number> 设定线程数
--o 相当于同时设定以上三个参数
--p<参数列表> 指定要测试的参数,不同的参数使用“,”分隔
--skip=<参数列表> 指定哪些参数不测试,不同参数使用“,”分隔
*-- 指出为静态网页的参数位置,如“/id/1*/”
--dbms<数据库类型> 指定数据库类型
--prefix<前缀>和-suffix<后缀> 指定PAYLOAD的前缀和后缀
--tables 获取数据表
-b/--banner 获取数据库版本
--current-user 显示当前数据库用户名
--is-dba 判断当前用户是否为管理员用户
--dbs 列出数据库系统的所有数据库
--tables/--exclude-sysdbs/-D 测试数据表
--dump 获取字段的值
--columns 获取数据字段
--dump/--start/--stop/--first/--last 测试数据数据字段的值
--proxy、--proxy-cred、-proxy-file和--ignore-proxy 关于代理的参数
--tor、--tor-type、--tor-port和--check-tor 关于tor匿名网络的参数
--risk 指定风险等级
--level 指定检测等级
--technique 指定要使用的注入技术
--common-tables和--common-columns 暴力破解表名和列名
--os-cmd=OSCMD 执行系统命令
--os-shell 交互命令执行(写入shell)
--sql-shell 执行SQL语句
--os-pwn--msf-path 结合Meterpreter

SQLMap参数命令示例

  • sqlmap-u"http://url/news?id=1"--current-user#获取当前用户名称
  • sqlmap-u"http://url/news?id=1"--current-db#获取当前数据库名称
  • sqlmap-u"http://url/news?id=1"-dbs#列数据库

0x04 Sqlmap脚本使用

sqlmap下的tamper目录存放绕过WAF脚本

使用方法  --tamper  脚本名称,脚本名称

多个tamper脚本之间用空格隔开

apostrophemask.py 用utf8代替引号
equaltolike.py like代替等号
space2dash.py 绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
greatest.py 绕过过滤  >
space2hash.py 空格替换为#号 随机字符串以及换行符
apostrophenulencode.py 绕过过滤双引号,替换字符和双引号。
halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论
space2mssqlblank.py 空格替换为其它空符号
base64encode.py 用base64编码替换
modsecurityversioned.py 过滤空格,包含完整的查询版本注释
space2mysqlblank.py 空格替换其它空白符号(mysql)
between.py 用between替换大于号(>)
space2mysqldash.py 替换空格字符(' ')(' -')后跟一个破折号注释一个新行(' n')
space2plus.py 用+替换空格

防御

绕过汇总

继续阅读