基于PHPCMS的SQL注入(Havij)
实验目的
通过本实验理解SQL注入基本原理和过程,掌握菜刀和Havij等注入工具的使用方法,了解SQL注入的危害。通过本实验,掌握SQL注入点识别方法、测试方法、自动化工具使用方法以及进行防御的基本方法。
【实验原理】
PHPCMS框架网站的相关页面存在SQL注入漏洞,本实验利用Havij软件进行自动化SQL注入,最终获取管理员的账号密码,登录管理员后台执行危险操作。
实验步骤
一、靶机操作
启动phpstudy
如果,显示不是两个绿色标志,则等待一会,按下重启按钮,再次尝试。
二、远程渗透测试主机操作
1、进入测试机
利用渗透测试主机,访问靶机上的目标网站。 http://IP:8083 (注意根据查看到的靶机IP地址,修改此处的IP,端口不变,以下截图中,均应将端口修改为8083),然后点击其中的一篇文章,如果地址栏出现http://***/xx.php?id=XX,则表明目标网站,采用PHP语言开发。
2、探测目标网站
探测目标网站是否存在SQL注入漏洞 分别在地址末尾添加单撇号、and 1=1 和 and 1=2 进行注入点探测。 如果单撇号出错、给出数据库信息,and 1=1正确执行,and 1=2显示空页面,则表明存在注入攻击点。
3、利用工具注入
在桌面,进入文件夹Tools—渗透工具包---Havij-1.15,运行Havij.exe。
在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带来的危害是非常大的,应该及时对服务器进行加固配置,应用软件及时升级为最新版本,减小网站被侵入的风险。