# Metodología para Pentesting Web

## Info

En esta sección se trata de describir en profundidad los diferentes tipos de vulnerabilidades y formas de hacer pentesting hacia servicios HTTP/HTTPS en base mi experiencia.

**Puertos por defecto:** 80 (HTTP), 443(HTTPS)

```bash
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
```

```bash
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
```

## Resumen de metodología web

Gran parte de lo descrito en esta sección está basada en la metodología [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/). Esta metodología se debe aplicar a cada dominio, subdominio o IP dentro del alcance con cliente que cuenten con servicios web.

### Simple check list

* [ ] Empieza por identificar las tecnologías que utiliza el servidor web. Busca trucos para tener en cuenta durante el resto de la prueba si consigues identificar con éxito la tecnología.
  * [ ] ¿Alguna vulnerabilidad conocida de la versión de la tecnología?
  * [ ] ¿Utiliza alguna tecnología conocida? ¿Algún truco útil para extraer más información?
  * [ ] ¿Hay que ejecutar algún escáner especializado (como wpscan)?
* [ ] Lanza escáneres de propósito general. Nunca se sabe si van a encontrar algo o si van a encontrar alguna información interesante.
* [ ] Comience con las comprobaciones iniciales:
  * [ ] robots.txt
  * [ ] sitemap.xml
  * [ ] Errores 404,403
  * [ ] escaneo de SSL/TLS si es HTTPS
* [ ] Empezar a hacer un spider y un fuzzeo a la pagina web\*\*:\*\* Es hora de encontrar todos los posibles archivos, carpetas y parámetros que se estén utilizando. Además, comprueba si hay hallazgos especiales.
  * [ ] *Para cada directorio o ruta encontrada por fueza bruta o spider se debe aplicar un fuzzeo*
* [ ] Fuerza bruta de directorios: Intenta forzar todas las carpetas descubiertas en busca de nuevos archivos y directorios. (Uso de burpsuite discover content o fuzzing )
* [ ] Comprobación de copias de seguridad: Comprueba si puedes encontrar copias de seguridad de archivos descubiertos añadiendo extensiones de copia de seguridad comunes.
* [ ] Fuerza bruta de parámetros
* [ ] Una vez que haya identificado todos los posibles endpoints que aceptan entradas de usuario, compruebe todo tipo de vulnerabilidades relacionadas con ellos.
  * [ ] **Proxys**: Hoy en día las aplicaciones web suelen utilizar algún tipo de proxy intermediario, que puede ser (ab)utilizado para explotar vulnerabilidades. Estas vulnerabilidades necesitan un proxy vulnerable para estar en su lugar, pero por lo general también necesitan alguna vulnerabilidad adicional en el backend.
    * [ ] Abusing hop-by-hop headers
    * [ ] Cache Poisoning/Cache Deception
    * [ ] HTTP Request Smuggling
    * [ ] H2C Smuggling
    * [ ] Server Side Inclusion/Edge Side Inclusion
    * [ ] Uncovering Cloudflare
    * [ ] XSLT Server Side Injection
  * [ ] **Campos de entrada**: La mayoría de las aplicaciones web permitirán a los usuarios introducir algunos datos que serán procesados posteriormente. Dependiendo de la estructura de los datos que el servidor está esperando algunas vulnerabilidades pueden o no aplicarse.
    * [ ] Client Side Template Injection
    * [ ] Command Injection
    * [ ] CRLF
    * [ ] Dangling Markup
    * [ ] File Inclusion/Path Traversal
    * [ ] Open Redirect
    * [ ] Prototype Pollution to XSS
    * [ ] Server Side Inclusion/Edge Side Inclusion
    * [ ] Server Side Request Forgery
    * [ ] Server Side Template Injection
    * [ ] Reverse Tab Nabbing
    * [ ] XSLT Server Side Injection
    * [ ] XSS | XSSI
    * [ ] XS-Search


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pruiz.gitbook.io/myphp/web-pentesting/metodologia-para-pentesting-web.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
