sqlmap的使用手册
阅读原文时间:2023年07月09日阅读:1

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方法

--data=

提交post数据并对post数据进行测试

--param-del=<分隔符>

指定参数的分隔符

--cookie

添加cookie http请求头

--headers

添加http请求头,不同的头使用“(n”分隔

--auth-type和--auth-cred

指定认证方式并指定使用的凭证

--auth-file

指定使用的证书文件

--keep-alive

使用http长连接,该参数与--proxy参数矛盾

--null-connection

只获取http响应的长度(大小)而不获取真正的响应体,可以节约布尔型盲注使用的带宽

--threads=

设定线程数

--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

用+替换空格

防御

绕过汇总

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章