SQLmap常用命令

使用sqlmap扫描时,HTTP头部字段:useragent包含sqlmap等敏感字符可能会被waf拦截;
可以采用模拟搜索引擎访问:

 --user-agent="搜索引擎http头"    //自定义UserAgent,防止CC流量拦截
 --delay 1     //设置延迟时间
 --safe-freq 3   //请求延迟

绕过一些waf可以使用sqlmap自带的一些插件,在sqlmap\sqlmap-1.5\tamper目录下可看见
sqlmap -u "url" --tamper=插件名称

若觉得有问题需分析可以使用参数设置代理 ,brup抓包进行分析
--proxy=http://127.0.0.1:8080/

常见一些SQLmap参数:

-p     //可指定测试参数,包括http头部如:x-forwarded-for等头部测试参数注入
-u    //url
-r path    //txt路径(无需设置cookie,post参数等等)
-- data "id=1"    //post参数指定
-f    //指纹判别数据库类型
-b    //数据库版本信息
-d "mysql://root:root@ip:3306/dnname"    //直连数据库
--dbs    //获取数据库名
--tables  //获取表名
--columns  //获取列名
--dump    //拖库数据
--users    //列出数据库所有用户
--passwords  //数据库所有用户密码
-U    //指定数据库用户
--privileges    //--privileges -U root查看用户权限
--privileges    //查看权限
--dump -T "" -D "" -C ""   //列出指定数据库的指定表的指定列数据
-D ""    //指定数据库名
-T ""    //指定表名
-C ""    //指定字段
--dump-all    //列出所有数据库所有表

一些其他重要参数:

-s ""    //保存注入过程到一个文件,可中断下次恢复继续注入 保存(-s "xxx.log") 恢复(-s "xx.log" --resume)
--level=(1-5)    //测试水平等级,默认为1, 2级会测试cookie,3级还会测试HTTP User-Agent/Referer
--risk=(0-3)     //测试执行的发现等级,默认为1
--os    //探测数据库服务器系统
--random-agent   //随机使用字典内的useragent,以防被拦截http头部useragent字段
--user-agent    //自定义UserAgent,防止CC流量拦截
--os-cmd,--os-shell  //执行系统命令
--time-sec=(2,5)  //延时响应,默认5
--dbms    //指定数据库:MySQL,Oracle,PostgreSQL,Microsoft SQLServer,Microsoft Access等等
--is-dba  //是否是数据库管理员
--roles    //枚举数据库用户角色 
 --batch    //自动选择默认选项

使用technique参数会更方便:

--technique = TECH // 要使用的 SQL 注入技术(默认为“BEUSTQ”) 
         B:布尔型SQL盲注(布尔型注入) 
         E: Error-based SQL injection(报错型注入) 
         U:UNION查询SQL注入(可联合查询注入) 
         S:堆叠查询SQL注入(可多语句查询注入) 
         T:基于时间的SQL盲注(基于时间延迟注入) 
         Q:inline_query SQL injection(内联注入) 

显示信息的参数:

-v   //(0-6) 默认0:只显示python回溯,错误和关键消息
    1:显示信息和警告信息
    2:显示调试信息
    3:有效载荷注入
    4:显示HTTP请求
    5:显示HTTP响应头
    6:显示HTTP响应页面内容

我一般少用但知道的参数:

--udf-inject //导入用户自定义函数(获取系统权限)
--union-check //是否支持union注入
--union-cols //union查询表记录
--union-use //采用union注入

posted @ 2021-07-21 15:06  努力的菜鸟Fang  阅读(614)  评论(0)    收藏  举报