PHP代码审计(行云海CMS v3.5)
PHP代码审计(行云海CMS v3.5)
- 前言
- 一、debug环境配置
- 二、准备好审计工具
- 1. rips
- 2. seay源代码审计系统
- 三、任意文件下载
- 四、任意文件读取
- 五、任意文件删除
- 总结
前言
最近突然想搞代码审计,拿行云海3.5练练手,感觉对新手还是挺友好的,搞得我这小菜鸡信心倍增
点击下载行云海v3.5源码(仅提供下载链接,不负责文件的安全性)
rips、seay打包(我记得我设的免费的来着,不知道为什么给我变成要积分了,而且积分要得时多时少)
一、debug环境配置
虽说是环境配置,其实也就是记录一下我自己遇到的一些问题,具体的就不写了
phpstudy 可以直接开启 Xdebug 扩展,不需要自己去下载对应版本的 dll 文件,但是配置文件默认关闭了debug模式,需要将 xdebug.remote_enable 的值设为1
当时搞了半天也不知道哪里出了问题,结果一看配置文件人都傻了,总之一个字,还是太菜了
打开apache配置文件,在末尾添加 FcgidIOTimeout 360000
不然debug时间长了容易报500错误
二、准备好审计工具
1. rips
rips 将verbosity level:调为 1.仅用户污染 准确率很高,但有些扫不出来
rips最棒的地方在于可以自动回溯,看着很舒服
2. seay源代码审计系统
能扫出很多漏洞,同时误报率也就搞了
这里有个小技巧(听师傅们说的):对于MVC模式的网站,主要看后台目录下的 Controller 文件夹,可能表述不太清楚,就是下图这个地方
三、任意文件下载
- 使用rips扫到一个 File Disclosure,很清楚的说明了漏洞在 DatabaseController.class.php 文件(截图没截到)中的 downfile() 方法中,同时说明了漏洞点以及参数来源
- 在phpstorm中打开代码,找到漏洞所在位置
- 分析代码
- 首先要以 GET方式 传入 file 和 type,其中 type 必须是 ‘zip’ 或者 ‘sql’ ,否则回显 “下载地址不存在”
- $path 为一个数组,固定为(“zip” => “./Data/resource/backupdata”; “sql” => “./Data/resource/backupdata”)
- 如果 type 的值为 zip, 则 $filepath 为 ./Data/resource/backupdata/ + 传入的文件名;若为 sql,则 $filepath 为 ./Data/resource/backupdata + 传入的文件名(所以这里可能存在目录穿越)
- 如果文件存在则会去下载文件
- 其实可以直接下断点观察
访问 http://localhost/xyh35/xyhai.php?s=Database/downFile&file=…/…/…/index.php&type=zip
观察各变量变化
最后成功下载web根目录下的 文件 index.php
四、任意文件读取
seay扫到不少,我把 home 和 manage 目录下的都分析了一遍,大部分漏洞点的参数都是从数据库读取,可能能配合其他漏洞打个组合拳,但是难度就比较大了,不适合我这种萌新
分析第二十五点,双击查看源码,定位到94行,在phpstorm中找到对应代码
做一下简单分析,第63行 IS_POST 虽然不知道他怎么实现的,但是看名字可以知道是判断是否以POST的方式传入,POST方式传入过滤挺严谨的,目录穿越不能用,而且文件扩展名必须为 html。而下面 GET 方式并没有进行过滤,随便传个参数进去可以观察到 $file_path 有三层,使用 …/…/…/ 即可以跳转到web根目录
其中第85行对fname进行了一次base64解码,所以直接构造payload http://localhost/xyh35/xyhai.php?s=Templets/edit/fname/Li4vLi4vLi4vaW5kZXgucGhw
如此,通过目录穿越,可以读取到web目录下的 index.php 文件,构造类似的payload,即可以读取任意文件
五、任意文件删除
继续查看 seay 扫出的漏洞,在 TempletsController.class.php 的第134行存在任意文件删除
打开phpstorm找到对应代码,如下图所示,还是那句老话,虽然不知道 127 行怎么实现的,但是很容易理解是将传入的 fname 的值进行 base64 解码。或者 debug 看一下也很容易发现确实如此
跟前面的任意文件读取差不多,传入 payload ?s=/Templets/del/fname/Li4vLi4vLi4vMS50eHQ=
,Li4vLi4vLi4vMS50eHQ= base64解码后为 …/…/…/1.txt,可以删除根目录下的 1.txt
这个一开始我还以为是个损人不利己的洞,但是师傅说,在web根目录下的 Install 目录下有一个,install.lock
文件,删除这个文件就可以重装CMS
总结
这个CMS确实都是些挺简单的漏洞,用于入门练手的绝佳CMS,可能作者就是给我们入门用的吧,哈哈,说笑了
PHP代码审计(行云海CMS v3.5)相关推荐
- 行云海cms mysql检测不出版本_行云海CMS(XYHCMS)网站内容管理系统 v3.6 bulid1012
行云海CMS(XYHCMS)网站内容管理系统 v3.6 bulid1012 更新日志 [√]增加审核功能 [√]让编辑器支持html5原生mp4播放器 [√]让编辑器支持html5原生mp3播放器 [ ...
- 雷风影视php安装,雷风影视CMS v3.9.1
雷风影视CMS是一款采用PHP基于THINKPHP3.2.3框架开发,适合各类视频.影视网站的影视内容管理程序.具有良好的用户体验,适合美工人员快速建立站点,您也可以根据您的需要进行应用扩展来达到更加 ...
- 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚
首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...
- PHP代码审计之漫画CMS
最近一直在学习代码审计的相关课程,也在找一些通用的CMS在练习,刚好在安全群里认识了一位志同道合的道友,于是就一起研究学习,前期还是不怎么太会,所以也一直两个人相互传授经验和交流,不过还好经过不断的奋 ...
- 国产cms java_国产java类cms v3.0.161109
国产java类cms简介 tjpcms是一套基于java的cms解决方案,开源免费.其独有的实时配置增删改查的功能,是其区别于同类cms的最大特点,也是最大优势,极大减少了重复劳动.懂jsp即可实现快 ...
- 飞腾ASP CMS v3.1发布
飞腾ASP网站内容管理系统(Feitec ASP Content Manage System),简称FeitecCMS或FTCMS 一.基本说明: 本程序适用于中小型ASP网站的快速建设: 结构:AS ...
- 海豚php框架漏洞,代码审计 - dolphin.pro cms SQL注入漏洞,Bypass过滤规则
Dolphin是一个网络软件平台,你可以下载并使用它来建立你自己的利基社交网络.社区网站.在线俱乐部或基于兴趣的社交网站. 代码分析: 1./flash/modules/chat/inc/action ...
- cms系统自己建网站其实很简单
作为菜鸟建站,当我看到别人的网站时,我常常会感到很高,但是我使用的是在线下载的行云海CMS模板,但是没有前端基础,因此我无法更改我怎么样我该怎么办?今天我们将讨论如何复制您喜欢的网站! 1.安装行云海 ...
- 学习笔记-B/S - Exploits
B/S - Exploits 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 各类论坛/CMS框架 AEM 74CMS dedeC ...
最新文章
- Django模板之jinja2模板和CSRF
- 一文概览图卷积网络基本结构和最新进展(附视频代码)
- 【技术干货】卷积神经网络中十大拍案叫绝的操作
- win7 计算机右键没有属性,系统之家windows7旗舰版计算机上右键菜单没有属性怎么办?...
- CSS过渡属性transitions详细解读——Web前端系列学习笔记
- android lrc 歌词显示,Android歌词 AndroidLrc歌词
- vue限制只能输入数字_vue的input中,如何限制只能输入number
- Storm,Spark和Samza
- BZOJ 1179: [Apio2009]Atm Tar$滑稽 ra$jan
- matlab2c使用c++实现matlab函数开发配置全解
- 【老生谈算法】matlab实现Retinex算法视频增强——Retinex算法
- Kettle下载安装pdi-ce-7.1.0.0-12
- Jmeter接口压力测试学习总结
- 剩余电流互感器互感电流放大转真有效值
- Java、IO流——缓冲流
- 恢复Windows10的经典照片查看器
- Linux 登录 帐号 cmccedu 无线,CMCC CMCC-EDU路由器绑定自动登录方法详细教程!
- NCCL+Ubuntu20.04安装
- Eclipse -- 打包 -- MANIFEST.MF 规则
- MySQL设计与优化
热门文章
- 服务器配置对shtml支持(nginx 或 tomcat)
- 微信小程序 icon图标 SVG代码转码为Base64编码格式并使用(霸霸看了都说好)
- SYS/BIOS API---Clock模块
- 删除计算机用户时拒绝访问权限,Win7系统删除提示文件夹访问被拒绝,您需要权限来执行操作解决方法...
- Wordpress REST API认证
- 带二维码的RFID标签,让气瓶安全监管一步到位
- Python列表的使用——增加、查找、删除、复制、推导式
- 分享个人WordPress博客主题
- Uncaught Syntax Error: Unexpected identifier异常处理方法
- 安化云台山风景区邀您畅玩浪漫的中秋之夜