😎
WEB
YouTubeTwitterLinkedIn
  • La Biblia del Hacking en Web
    • ADVERTENCIA
    • Conoce a tu academia
    • Conoce a tu instructor
    • Aprende Hacking Web con los laboratorios de PortSwigger
  • SQL Injection
    • ¿SQL Injection?
    • Lab 1: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
    • Lab 2: SQL injection vulnerability allowing login bypass
    • Lab 3: SQL injection attack, querying the database type and version on Oracle
    • Lab 4: SQL injection attack, querying the database type and version on MySQL and Microsoft
    • Lab 5: SQL injection attack, listing the database contents on non-Oracle databases
    • Lab 6: SQL injection attack, listing the database contents on Oracle
  • Cross Site Scripting
    • ¿XSS?
    • Lab 1: Reflected XSS into HTML context with nothing encoded
    • Lab 2: Stored XSS into HTML context with nothing encoded
    • Lab 3: DOM XSS in document.write sink using source location.search
    • Lab 4: DOM XSS in innerHTML sink using source location.search
    • Lab 5: DOM XSS in jQuery anchor href attribute sink using location.search source
  • ClickJacking
    • ¿Clickjacking?
    • Lab 1: Basic clickjacking with CSRF token protection
  • Access control vulnerabilities
    • ¿Control de Acceso?
    • Lab 1: Unprotected admin functionality
    • Lab 3: User role controlled by request parameter
  • Path traversal
    • ¿Path Traversal?
    • Lab 1: File path traversal, simple case
    • Lab 2: File path traversal, traversal sequences blocked with absolute path bypass
    • Lab 3: File path traversal, traversal sequences stripped non-recursively
  • XML external entity (XXE) injection
    • ¿XML external entity?
    • Lab 1: Exploiting XXE using external entities to retrieve files
    • Lab 2: Exploiting XXE to perform SSRF attacks
    • Lab 3: Blind XXE with out-of-band interaction
  • JWT
    • ¿JWT?
    • Lab 1: JWT authentication bypass via unverified signature
    • Lab 2: JWT authentication bypass via flawed signature verification
    • Lab 3: JWT authentication bypass via weak signing key
    • Lab 4: JWT authentication bypass via jwk header injection
    • Lab 5: JWT authentication bypass via jku header injection
  • Server-side request forgery (SSRF)
    • ¿SSRF?
    • Lab 1: Basic SSRF against the local server
  • OS command injection
    • ¿OS Command Injection?
    • Lab 1: OS command injection, simple case
  • Authentication
    • ¿Authentication?
    • Lab 1: Username enumeration via different responses
  • HTTP request smuggling
    • ¿HTTP request smuggling?
    • Lab 1: HTTP request smuggling, confirming a CL.TE vulnerability via differential responses
  • Server-side template injection
    • ¿Server-side template injection?
    • Lab 1: Basic server-side template injection
  • DOM-based vulnerabilities
    • Lab 1: DOM XSS using web messages
    • Lab 2: DOM XSS using web messages and a JavaScript URL
  • WebSockets
    • Lab #1: Manipulating WebSocket messages to exploit vulnerabilities
  • Prototype pollution
    • ¿Prototype Pollution?
    • Lab 1: Client-side prototype pollution via browser APIs
      • Utilizando DOM Invader
    • Lab 2: DOM XSS via client-side prototype pollution
    • Lab 3: DOM XSS via an alternative prototype pollution vector
      • Utilizando DOM Invader
    • Lab 4: Client-side prototype pollution via flawed sanitization
    • Lab 5: Client-side prototype pollution in third-party libraries
    • Lab 6: Privilege escalation via server-side prototype pollution
    • Lab 7: Detecting server-side prototype pollution without polluted property reflection
    • Lab 8: Bypassing flawed input filters for server-side prototype pollution
    • Lab 9: Remote code execution via server-side prototype pollution
    • Lab 10: Exfiltrating sensitive data via server-side prototype pollution
  • GraphQL
    • Lab 1: Accessing private GraphQL posts
  • Web cache poisoning
    • Lab 1: Web cache poisoning with an unkeyed header
  • CORS
    • Lab #2 - CORS vulnerability with trusted null origin
    • Lab 3: CORS vulnerability with trusted insecure protocols
  • API testing
    • Lab #1: Exploiting an API endpoint using documentation
    • Lab #2: Exploiting server-side parameter pollution in a query string
    • Lab #3: Finding and exploiting an unused API endpoint
    • Lab #4: Exploiting a mass assignment vulnerability
    • Lab #5: Exploiting server-side parameter pollution in a REST URL
Con tecnología de GitBook
En esta página
  • ¿Qué es Server-Side Request Forgery (SSRF)?
  • ¿Cómo Funciona SSRF?
  • Ejemplo de SSRF
  • 1. Acceder a un Recurso Interno
  • 2. Escanear la Red Interna
  • 3. Acceder a un Servicio Interno

¿Te fue útil?

  1. Server-side request forgery (SSRF)

¿SSRF?

¿Qué es Server-Side Request Forgery (SSRF)?

Server-Side Request Forgery (SSRF) es una vulnerabilidad de seguridad que permite a un atacante manipular un servidor para que realice solicitudes HTTP en su nombre. Esto puede incluir acceder a recursos internos, servicios protegidos, o realizar solicitudes maliciosas a sistemas externos. La explotación de SSRF puede tener graves consecuencias, incluyendo la exposición de información confidencial, la explotación de servicios internos, y la ampliación del acceso en la red interna del servidor objetivo.

¿Cómo Funciona SSRF?

SSRF ocurre cuando una aplicación web permite a los usuarios especificar una URL o dirección que el servidor luego utiliza para realizar una solicitud. Si la aplicación no valida adecuadamente la entrada proporcionada por el usuario, un atacante puede manipular esta entrada para hacer que el servidor realice solicitudes a destinos arbitrarios.

Ejemplo de SSRF

Considere una aplicación que permite a los usuarios ingresar una URL para obtener una vista previa del contenido de esa página:

<?php
$url = $_GET['url'];
$response = file_get_contents($url);
echo $response;
?>

Si un atacante proporciona una URL maliciosa, como http://localhost/admin, el servidor realizará una solicitud a la URL proporcionada. Esto puede permitir al atacante acceder a recursos internos que normalmente estarían protegidos.

1. Acceder a un Recurso Interno

Supongamos que el atacante quiere acceder al archivo /etc/passwd en un servidor Linux interno. Podría hacer lo siguiente:

curl "http://victima.com/?url=file:///etc/passwd"

En este ejemplo, el atacante está manipulando el parámetro url para que apunte a un archivo local en el servidor de la víctima. Si la aplicación vulnerable no valida adecuadamente el parámetro url, intentará leer el contenido de /etc/passwd y devolverlo en la respuesta.

2. Escanear la Red Interna

Un atacante también puede usar SSRF para escanear la red interna del servidor de la víctima. Por ejemplo, para verificar si hay un servicio HTTP en ejecución en http://192.168.1.1:

curl "http://victima.com/?url=http://192.168.1.1:80"

Si el servidor de la víctima realiza la solicitud y devuelve contenido, el atacante puede determinar que hay un servicio en ejecución en esa dirección IP interna.

3. Acceder a un Servicio Interno

Supongamos que hay una API interna accesible solo desde la red interna en http://localhost/admin. El atacante podría intentar acceder a esta API:

curl "http://victima.com/?url=http://localhost/admin"

Si la aplicación vulnerable no valida adecuadamente las URL y permite que se realicen solicitudes a localhost, el servidor de la víctima podría devolver el contenido de la API interna.

AnteriorLab 5: JWT authentication bypass via jku header injectionSiguienteLab 1: Basic SSRF against the local server

Última actualización hace 11 meses

¿Te fue útil?