Joomla RCE (CVE-2020-10238) analysis
Joomla RCE (CVE-2020-10238) analysis
S0cke3t漏洞描述
Joomla!是美国Open Source Matters团队的一套使用PHP和MySQL开发的开源、跨平台的内容管理系统(CMS)。在其<= 3.9.15版本中由于后台模板功能存在缺陷,导致可向目标存在的php文件中写入恶意代码进而导致远程代码执行。
影响范围
Joomla <= 3.9.15
漏洞分析
首先我们根据现有的poc加入调试代码,大体看一下具体的利用过程,对后面定位分析文件做一个初步判断
根据option参数找到对应的模板操作的主入口文件administrator/components/com_templates/templates.php
该文件首先使用JFactory
工厂对对象进行初始化并接收传入的task参数,最后交由execute
执行对应的操作跟进execute
根据task
获取到对应执行的函数名称,继续跟进save
获取要操作的基础参数,并进行一系列的检查,随后对data
进行验证
但是此处校验并非检测data
内容,而是检测如果我们传入的是xml格式,此方法会解析出要存入的内容,所以对我们的payload
并无大碍
随后调用此模型的save函数,进行具体的写入操作
首先对接受的参数进行解码,路径过滤,判断文件是否可写。如果条件满足则最后调用joomla
的文件处理模块进行写入操作
整个过程中未对写入内容和写入文件进行限