实验目的
通过本实验理解SQL注入基本原理和过程,掌握菜刀和Havij等注入工具的使用方法,了解SQL注入的危害。通过本实验,掌握SQL注入点识别方法、测试方法、自动化工具使用方法以及进行防御的基本方法。
实验环境
测试渗透机:win2k8SvrTester
工具:中国菜刀、Havij
目标服务器(靶机):phpcms网站
实验原理
PHPCMS框架网站的相关页面存在SQL注入漏洞,本实验利用Havij软件进行自动化SQL注入,最终获取管理员的账号密码,登录管理员后台执行危险操作。
实验步骤
第一步靶机操作
(1)进入靶机,查看IP地址; 开始—运行,输入cmd回车,出现命令行窗口,输入:ipconfig 显示,靶机配置信息,记下以太网适配器下,IPv4地址(后面访问网页会用到)。 此处假设为192.168.0.18.
(2)启动phpstudy
第二步渗透主机操作
(1)打开测试渗透机。 利用攻击机,访问靶机。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(文件路径C:\Users\test\Desktop\Tools\havij-1.15)。
在Target后面的输入栏中,输入看到的目标网站的可注入网址。
注意: (1)Target栏目中,输入内容,必须带上“http://”,并且,一定具有**.php?id=特征。
(2)Database选择项,根据前面出错信息,选择mysql blind(盲注)或自动检测。其他按图中所示进行选择即可。
(3)点击,Analyze,即可输出各种信息。
步骤一:获取信息。点击info,查看基本信息。
步骤二:获取数据库,表,列的信息。依次点击TablesGetDBs,得到靶机上的所有数据库信息(如果仅显示一个数据库,等待1分钟左右,再次点击即可),勾选cms数据库,然后点击Get Tables,得到cms数据库中的所有表的信息。
步骤三:获取字段值。选择username、password列,点击Get Data得到当前数据库的用户名和密码加密后的值。
通过www.cmd5.com查询,得到对应的密码明文。
步骤四:登陆后台。在网站主页,点击后台管理,进入,输入用户名和密码,进入网站后台。
可以看到,通过SQL注入,得到了目标网站的控制权限。
实验总结
通过本次实验,大家可以体会到SQL注入给WEB带来的危害是非常大的,应该及时对服务器进行加固配置,应用软件及时升级为最新版本,减小网站被侵入的风险。