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 文件夹,可能表述不太清楚,就是下图这个地方

三、任意文件下载

  1. 使用rips扫到一个 File Disclosure,很清楚的说明了漏洞在 DatabaseController.class.php 文件(截图没截到)中的 downfile() 方法中,同时说明了漏洞点以及参数来源

  1. 在phpstorm中打开代码,找到漏洞所在位置

  1. 分析代码
  • 首先要以 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 + 传入的文件名(所以这里可能存在目录穿越)
  • 如果文件存在则会去下载文件
  1. 其实可以直接下断点观察

访问 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)相关推荐

  1. 行云海cms mysql检测不出版本_行云海CMS(XYHCMS)网站内容管理系统 v3.6 bulid1012

    行云海CMS(XYHCMS)网站内容管理系统 v3.6 bulid1012 更新日志 [√]增加审核功能 [√]让编辑器支持html5原生mp4播放器 [√]让编辑器支持html5原生mp3播放器 [ ...

  2. 雷风影视php安装,雷风影视CMS v3.9.1

    雷风影视CMS是一款采用PHP基于THINKPHP3.2.3框架开发,适合各类视频.影视网站的影视内容管理程序.具有良好的用户体验,适合美工人员快速建立站点,您也可以根据您的需要进行应用扩展来达到更加 ...

  3. 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚

    首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...

  4. PHP代码审计之漫画CMS

    最近一直在学习代码审计的相关课程,也在找一些通用的CMS在练习,刚好在安全群里认识了一位志同道合的道友,于是就一起研究学习,前期还是不怎么太会,所以也一直两个人相互传授经验和交流,不过还好经过不断的奋 ...

  5. 国产cms java_国产java类cms v3.0.161109

    国产java类cms简介 tjpcms是一套基于java的cms解决方案,开源免费.其独有的实时配置增删改查的功能,是其区别于同类cms的最大特点,也是最大优势,极大减少了重复劳动.懂jsp即可实现快 ...

  6. 飞腾ASP CMS v3.1发布

    飞腾ASP网站内容管理系统(Feitec ASP Content Manage System),简称FeitecCMS或FTCMS 一.基本说明: 本程序适用于中小型ASP网站的快速建设: 结构:AS ...

  7. 海豚php框架漏洞,代码审计 - dolphin.pro cms SQL注入漏洞,Bypass过滤规则

    Dolphin是一个网络软件平台,你可以下载并使用它来建立你自己的利基社交网络.社区网站.在线俱乐部或基于兴趣的社交网站. 代码分析: 1./flash/modules/chat/inc/action ...

  8. cms系统自己建网站其实很简单

    作为菜鸟建站,当我看到别人的网站时,我常常会感到很高,但是我使用的是在线下载的行云海CMS模板,但是没有前端基础,因此我无法更改我怎么样我该怎么办?今天我们将讨论如何复制您喜欢的网站! 1.安装行云海 ...

  9. 学习笔记-B/S - Exploits

    B/S - Exploits 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 各类论坛/CMS框架 AEM 74CMS dedeC ...

最新文章

  1. Django模板之jinja2模板和CSRF
  2. 一文概览图卷积网络基本结构和最新进展(附视频代码)
  3. 【技术干货】卷积神经网络中十大拍案叫绝的操作
  4. win7 计算机右键没有属性,系统之家windows7旗舰版计算机上右键菜单没有属性怎么办?...
  5. CSS过渡属性transitions详细解读——Web前端系列学习笔记
  6. android lrc 歌词显示,Android歌词 AndroidLrc歌词
  7. vue限制只能输入数字_vue的input中,如何限制只能输入number
  8. Storm,Spark和Samza
  9. BZOJ 1179: [Apio2009]Atm Tar$滑稽 ra$jan
  10. matlab2c使用c++实现matlab函数开发配置全解
  11. 【老生谈算法】matlab实现Retinex算法视频增强——Retinex算法
  12. Kettle下载安装pdi-ce-7.1.0.0-12
  13. Jmeter接口压力测试学习总结
  14. 剩余电流互感器互感电流放大转真有效值
  15. Java、IO流——缓冲流
  16. 恢复Windows10的经典照片查看器
  17. Linux 登录 帐号 cmccedu 无线,CMCC CMCC-EDU路由器绑定自动登录方法详细教程!
  18. NCCL+Ubuntu20.04安装
  19. Eclipse -- 打包 -- MANIFEST.MF 规则
  20. MySQL设计与优化

热门文章

  1. 服务器配置对shtml支持(nginx 或 tomcat)
  2. 微信小程序 icon图标 SVG代码转码为Base64编码格式并使用(霸霸看了都说好)
  3. SYS/BIOS API---Clock模块
  4. 删除计算机用户时拒绝访问权限,Win7系统删除提示文件夹访问被拒绝,您需要权限来执行操作解决方法...
  5. Wordpress REST API认证
  6. 带二维码的RFID标签,让气瓶安全监管一步到位
  7. Python列表的使用——增加、查找、删除、复制、推导式
  8. 分享个人WordPress博客主题
  9. Uncaught Syntax Error: Unexpected identifier异常处理方法
  10. 安化云台山风景区邀您畅玩浪漫的中秋之夜