
RCE Exploit and Research
Exécution de code à distance via une vulnérabilité de téléchargement de fichier sans restriction dans le Clinic's Patient Management System v 1.0

L'exécution de code à distance dans Clinic's Patient Management System v 1.0 permet à un attaquant de télécharger une webshell PHP arbitraire via la fonctionnalité de téléchargement de photo de profil dans users.php
Dans le code source suivant, nous pouvons voir que le développeur permet directement de télécharger n'importe quel fichier média sans restreindre une extension spécifique, ce qui signifie que nous pouvons y télécharger n'importe quel type de fichier, ce qui n'est pas acceptable pour des raisons de sécurité. En utilisant cette faille de fonctionnalité, un attaquant pourrait télécharger une webshell malveillante pour obtenir un accès complet au serveur avec les privilèges root.
Page vulnérable - users.php
// users.php
$status = move_uploaded_file(
$_FILES["profile_picture"]["tmp_name"],
'user_images/' . $targetFile
);
if ($status) {
try {
$con->beginTransaction();
$query = "INSERT INTO `users`(`display_name`,
`user_name`, `password`, `profile_picture`)
VALUES('$displayName', '$userName', '$encryptedPassword', '$targetFile');";
$stmtUser = $con->prepare($query);
$stmtUser->execute();
$con->commit();
$message = 'user registered successfully';
} catch (PDOException $ex) {
$con->rollback();
echo $ex->getTraceAsString();
echo $ex->getMessage();
exit;
}
} else {
$message = 'a problem occured in image uploading.';
}
header("location:congratulation.php?goto_page=users.php&message=$message");
exit;
}
# Télécharger une simple webshell sur la machine cible -
python3 CVE-2022-40471.py <target_ip> <target_port> <target_uri> <username> <password>
python CVE-2022-40471.py 127.0.0.1 80 /pms/ UserName Password

https://drive.google.com/file/d/1m-wTfOL5gY3huaSEM3YPSf98qIrkl-TW/view?usp=sharing
https://www.sourcecodester.com/php-clinics-patient-management-system-source-code
https://www.sourcecodester.com/sites/default/files/download/oretnom23/php-cpms.zip
RashidKhan Pathan (iHexCoder), 9 septembre 2022. Twitter: @itRashid