PHP SSRF
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Algunas funciones como file_get_contents(), fopen(), file(), md5_file() aceptan URLs como entrada que seguirán, lo que hace posibles las vulnerabilidades SSRF si el usuario puede controlar los datos:
Como se explica en esta publicación del blog, incluso la función de Wordpress wp_safe_remote_get
es vulnerable a DNS rebinding, lo que la hace potencialmente vulnerable a ataques SSRF. La validación principal que llama es wp_http_validate_url, que verifica que el protocolo sea http://
o https://
y que el puerto sea uno de 80, 443 y 8080, pero es vulnerable a DNS rebinding.
Otras funciones vulnerables según la publicación son:
wp_safe_remote_request()
wp_safe_remote_post()
wp_safe_remote_head()
WP_REST_URL_Details_Controller::get_remote_url()
download_url()
wp_remote_fopen()
WP_oEmbed::discover()
Además, en algunos casos podría ser incluso posible enviar encabezados arbitrarios a través de "vulnerabilidades" CRLF en las funciones anteriores:
Para más información sobre esa vulnerabilidad CRLF, consulta este error https://bugs.php.net/bug.php?id=81680&edit=1
Ten en cuenta que estas funciones pueden tener otros métodos para establecer encabezados arbitrarios en las solicitudes, como:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)