
RCE Exploit e Ricerca
Esecuzione di codice remoto tramite vulnerabilità di upload di file senza restrizioni nel Clinic's Patient Management System v 1.0

L'esecuzione di codice remoto in Clinic's Patient Management System v 1.0 consente a un attaccante di caricare webshell php arbitrari tramite la funzionalità di caricamento dell'immagine del profilo in users.php
Nel seguente codice sorgente possiamo vedere che lo sviluppatore consente direttamente di caricare qualsiasi file multimediale senza limitare un'estensione specifica, il che significa che possiamo caricare file di qualsiasi estensione, cosa non accettabile per motivi di sicurezza. Sfruttando questa falla funzionale, un attaccante potrebbe caricare una webshell dannosa per ottenere accesso completo al server con privilegi di root.
Pagina vulnerabile - 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;
}
# Upload a simple webshell to the target machine -
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

RashidKhan Pathan (iHexCoder), 9 settembre 2022. Twitter: @itRashid