某小众CMS漏洞挖掘与实战

概述

在前段时间实战攻防演练中发现很多医院都使用同一个管理系统,网站后台都是同一路径:/adm/index.php,但是我从未见过,且页面没有任何Banner信息,如图:
某小众CMS漏洞挖掘与实战_第1张图片

通过许久的搜索终于找到了一些极其相似的源码,但都没有源码来源,其中有一套来自网软志成医院科室诊所门诊部网站系统源码,现在也下架了。还好我有备份:点击下载

环境搭建

运行环境使用Windows Server 2008 R2 64位和phpstudy进行搭建。部分源码已使用Zend加密,因此使用Zend解密工具进行解密,如图:
某小众CMS漏洞挖掘与实战_第2张图片

在安装过程中发现第二步需要填写信息获取试用授权,如图:
某小众CMS漏洞挖掘与实战_第3张图片

但填写之后程序仍然无法获取试用授权,可能是因为太旧了吧。因此需要修改代码将第二步绕过,以便安装成功进行学习。将www\install\install.php第二步代码直接改为$donext = TRUE;,如图:
某小众CMS漏洞挖掘与实战_第4张图片

此外程序还将检测授权,因此需要将程序中涉及检测授权的代码删除或注释,在www\includes\func\common.inc.php文件找到授权检测函数,如图:
某小众CMS漏洞挖掘与实战_第5张图片

将所有php文件中调用此函数的部分注释或删除即可。由于解密后的部分源码不完整,导致验证码无法显示。将www\adm\codeimg.php中缺少的部分代码补充如下:
某小众CMS漏洞挖掘与实战_第6张图片

然后将www目录中的文件放到网站根目录,访问网站即可开始安装:
某小众CMS漏洞挖掘与实战_第7张图片
某小众CMS漏洞挖掘与实战_第8张图片
某小众CMS漏洞挖掘与实战_第9张图片
某小众CMS漏洞挖掘与实战_第10张图片
某小众CMS漏洞挖掘与实战_第11张图片
某小众CMS漏洞挖掘与实战_第12张图片
某小众CMS漏洞挖掘与实战_第13张图片

安装完之后即可开始审计代码、挖掘漏洞并测试了,如图:
某小众CMS漏洞挖掘与实战_第14张图片

代码审计

使用RIPS仅扫描源码根目录发现存在代码执行、文件泄露、文件包含、SQL注入等漏洞,如图:
某小众CMS漏洞挖掘与实战_第15张图片

查看SQL注入漏洞,直接将变量的值进行字符串拼接,如图:
某小众CMS漏洞挖掘与实战_第16张图片

由于此处没有将错误信息输出页面,因此无法利用该注入点进行SQL注入,此外RIPS能扫描的文件数量较少,因此使用Seay扫描所有文件,如图:
某小众CMS漏洞挖掘与实战_第17张图片

发现大量文件包含漏洞、SQL注入漏洞、任意文件读取/删除漏洞和代码执行漏洞等。先看看SQL注入类的,发现基本都是没有错误回显的,无论手工注入还是使用sqlmap都未成功,然后查看登录文件adm/admin.php,如图:
某小众CMS漏洞挖掘与实战_第18张图片

adm/func/adm.inc.php文件发现存在SQL注入漏洞,但是同样没有错误回显,且验证码校验仅仅是将Cookie中的SYSIMG参数的值逆序后加一,如图:
某小众CMS漏洞挖掘与实战_第19张图片

不得不说代码很。。。怪不得使用Zend加密。虽然不能利用SQL注入获取数据库中的数据和Getshell,但是可以利用SQL注入绕过登录进入后台。

实战

使用Payload:a'or'1'='1' or'1。在用户名输入框输入该payload,然后随便输入密码,填写验证码即可绕过登录进入后台。
某小众CMS漏洞挖掘与实战_第20张图片

成功登录后台,如图:
某小众CMS漏洞挖掘与实战_第21张图片

编写Goby Poc

查询规则就根据验证码那里查询,如图:
某小众CMS漏洞挖掘与实战_第22张图片

检测规则加入必要的请求头,指定SYSIMG的值,提交的验证码为该值倒序加一即可,然后将Payload填入Post数据,如图:
某小众CMS漏洞挖掘与实战_第23张图片

测试响应部分将响应值设置为window.location='main.php'即可,如图:
某小众CMS漏洞挖掘与实战_第24张图片

测试Poc,如图:
某小众CMS漏洞挖掘与实战_第25张图片

虽然单IP扫描通过了,但是在实际扫描中发现Goby并不能识别HTTP请求头中的SYSIMG参数,因此无法扫描到该漏洞。
某小众CMS漏洞挖掘与实战_第26张图片

修改之后就可以扫描到了,如图:
某小众CMS漏洞挖掘与实战_第27张图片

防护建议

1、修改所有存在漏洞的代码
2、使用D盾、安全狗等安全软件

你可能感兴趣的:(WEB渗透从入门到精通,代码审计,实战攻防,漏洞挖掘)