Discuz!X V3.4后台任意文件删除
Discuz!X V3.4后台任意文件删除
简述
该漏洞为后台任意文件删除,需要有管理员的权限,所以说危害非常小
复现环境
docker、vulhub-master
项目地址:https://gitee.com/ComsenzDiscuz/DiscuzX/tree/master
漏洞复现
启动环境docker-compose up -d
安装Discuz!X V3.4 数据库名设置为db
访问后台并登录http://your-ip/admin.php
进入论坛->模块管理->编辑板块
使用burp拦截”提交“的数据。
在请求包中添加如下参数 &replybgnew=../../../robots.txt&delreplybg=1
发送请求包,前后对比一下,发现目录中的文件(robots.txt)已经被删除了
代码分析
首先看我们的请求
admin.php?action=forums&operation=edit&fid=2&replybgnew=../../../robots.txt&delreplybg=1
admin.php
中接收了action
参数后经过actioncpfile
处理后返回文件路径并包含。
actioncpfile
函数
function admincpfile($action)
{
return './source/admincp/admincp_'.$action.'.php';
}
返回admincp_forums.php
,漏洞出现在该文件中
漏洞代码
if(!$multiset) {
if($_GET['delreplybg']) {
$valueparse = parse_url($_GET['replybgnew']);
if(!isset($valueparse['host']) && file_exists($_G['setting']['attachurl'].'common/'.$_GET['replybgnew'])) {
@unlink($_G['setting']['attachurl'].'common/'.$_GET['replybgnew']);
}
$_GET['replybgnew'] = '';
......
......
}
第一个if语句
当$multiset
为0进入if语句,由491行代码可知multiset
参数默认为0,所以只要不传入该参数或者置空即可
第二个if语句
GET参数delreplybg
其中利用了parse_url
来判断有没有host
,来确保GET参数是replybgnew
而不是URL
$_G['setting']['attachurl'
的值为data/attachment/common/[replybgnew]
,这个就是可控的删除路径
漏洞修复
需要有管理员的权限,危害很小,目前网上没找到修复
Discuz!X V3.4后台任意文件删除的更多相关文章
- Discuz!X 3.4 前台任意文件删除漏洞复现
Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/artic ...
- PHP:网展cms后台任意文件删除和sql注入
0x01:目录结构 可以发现Frameword是框架的文件 install安装 public公共文件 uploads储存上传之类的文件 webuser后台文件 Home前台文件 0x02.csrf漏洞 ...
- ThinkSNS2.5前台getshell+后台任意文件删除
12年爆出的一个洞 前几天比赛的一个cms 于是跟出题人表哥要过来审计了看看 漏洞文件再根目录thumb.php中 <?php /* * 自动缩略图 参数 url|w|h|type=" ...
- 【代码审计】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 ...
- HDWIKI6.0后台任意文件删除/下载
- [代码审计]phpshe开源商城后台两处任意文件删除至getshell
0x00 背景 这套系统审了很久了,审计的版本是1.6,前台审不出个所以然来.前台的限制做的很死. 入库的数据都是经过mysql_real_escape_string,htmlspecialchars ...
- 【代码审计】XYHCMS V3.5任意文件删除漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...
随机推荐
- 4、BFS算法套路框架——Go语言版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- linux test使用
文件 文件是否存在 test -f 判断文件是否存在 test -d 目录是否存在 test -e 文件名是否存在 通过echo $? 来得知test后的结果 test -f sh && ...
- let, const用法以及与var的区别
let 定义变量; 作用域:全局作用域,块级作用域(简单说,是指一对大括号{}): 无预解析机制(简单说,变量需要在声明的位置后面使用): 不可以重复定义. const 定义常量: 作用域: 块级作用 ...
- js判断是电脑(pc)访问还是手机(mobile)访问
<script> if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symb ...
- Github访问加速(解决md图片显示问题)
参考自知乎:https://zhuanlan.zhihu.com/p/107691233 基本步骤 查找域名对应IP https://www.ipaddress.com http://tool.chi ...
- cmake配置项目引用动态库
note 本文将介绍使用FIND_PACKAGE配置项目动态库的方法 cmake version: 3.18 platform: win10 20H2 概述 创建了一个动态库,再由主项目调用该动态库. ...
- 【剑指Offer】和为S的两个数字 解题报告(Python)
[剑指Offer]和为S的两个数字 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...
- Quoit Design(hdu1007)
---恢复内容开始--- Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- 【Web前端】css属性cursor注意事项
注意使用cursor的url时url的括号后面必须+ ,auto: 错误示范:cursor:url('../picture/head.cur'); 正确示范:cursor: url(". ...
- Robust De-noising by Kernel PCA
目录 引 主要内容 Takahashi T, Kurita T. Robust De-noising by Kernel PCA[C]. international conference on art ...