01
组件说明
PHPMyWind是一款基于PHP+MySQL开发符合W3C标准的建站引擎,漏洞源于admin/site_save.php中对于数据未进行校验,导致可插入恶意代码造成RCE
02
影响版本
PHPMyWind 5.6
03
漏洞分析&复现
根据CVE官方的描述:由于未正确处理特殊字符,导致写入恶意数据到配置文件中
PHPMyWind 5.6 is vulnerable to Remote Code Execution. Becase input is filtered without “<, >, ?, =, `,….” In WriteConfig() function, an attacker can inject php code to /include/config.cache.php file.
这段描述中提到了WriteConfig()方法和include/config.cache.php文件,
分析:
首先全局搜索下WriteConfig()方法:看到site_save.php文件
看下site_save.php文件的WriteConfig()方法的实现:最后一步为写入配置文件,基本确定为存在漏洞的文件
继续往上查看分析:可以看到当action为add(添加站点)时,直接插入了site_key、site_name、site_lang三个参数值,未进行过滤。
复现:
访问后台:
使用默认账号admin/admin登录:选择站点配置管理-> 添加新站点
在站点标识处插入恶意代码
最后在任意页面访问 ?cmd=id 即可触发:
04
修复建议
对用户的输入数据进行过滤,包括不限于<、 >、?、 = 、`、等特殊字符。
本文章仅供学习交流,不得用于非法用途!
关于我们
启明星辰知白学院旗下安全实验室,致力于网络安全攻防实战探索与积累、解读前沿安全技术,安全培训课题、提供企业级安全自动化解决方案。
原文始发于微信公众号(河图实验室):PHPMyWind 5.6 代码执行漏洞(CVE-2021-39503)