Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
RatRace — أداة سطر أوامر خفيفة الوزن لاكتشاف واستغلال حالات السباق (race conditions) بشكل منهجي في تطبيقات الويب وواجهات برمجة التطبيقات (APIs) والخدمات الحديثة. | Kitploit
أدوات/GitHubGitHub/bogdanticu88/ratrace
ماسحات الثغرات الأمنيةالاستغلالالبرمجة النصية والأتمتةاختبار أمان APIأمن الويبالاختبار العشوائياختبار الاختراقDevSecOps
GitHubbogdanticu88/ratrace

RatRace

أداة سطر أوامر خفيفة الوزن لاكتشاف واستغلال حالات السباق (race conditions) بشكل منهجي في تطبيقات الويب وواجهات برمجة التطبيقات (APIs) والخدمات الحديثة.

عرض المستودع
1014منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

رات ريس

RatRace - عدة اختبار سباق الحالة

أداة CLI خفيفة الوزن لاكتشاف واستغلال سباقات الحالة (Race Conditions) بشكل منهجي في تطبيقات الويب وواجهات برمجة التطبيقات والخدمات الحديثة.



Go Version License Status Platform Security Build


المشكلة التي تحلها

تمثل سباقات الحالة (Race Conditions) واحدة من أكثر الثغرات الأمنية تأثيرًا في التطبيقات الحديثة، ومع ذلك تظل غير مغطاة بشكل جيد بواسطة الماسحات الآلية. بينما تتفوق أدوات مثل Nuclei و ffuf و sqlmap في إيجاد الثغرات الثابتة، فإنها عمياء أساسًا تجاه المشكلات القائمة على التزامن.

يواجه مختبرو الاختراق اليوم خيارًا: إما كتابة نصوص برمجية مؤقتة يدويًا لكل مهمة، أو تخطي اختبار سباقات الحالة بالكامل. لا يُعتبر أي من الخيارين قابلًا للتوسع أو احترافيًا.

تحل RatRace هذه المشكلة من خلال توفير سير عمل مُحسَّن وقابل للتكرار لاختبار سباقات الحالة — تحويل ما كان في السابق نصوصًا برمجية مخصصة إلى عملية منهجية تدمج مع أنابيب CI/CD وتُنتج تقارير احترافية.

التأثير في العالم الحقيقي

تظهر ثغرات سباقات الحالة بشكل متكرر في المناطق عالية التأثير:

  • التجارة الإلكترونية: طلبات مكررة، بيع زائد في المخزون، تكديس الخصومات
  • التكنولوجيا المالية: تحويلات مزدوجة، تصعيد صلاحيات قائم على السباق، إعادة تشغيل المعاملات
  • المصادقة: استنزاف الرموز، تثبيت الجلسات، إعادة تعيين كلمات المرور المتزامنة
  • تحديد المعدل: تجاوز عبر الطلبات المتزامنة، إساءة الاستخدام الموزعة

تحصل هذه الأخطاء باستمرار على أعلى المكافآت في برامج مكافآت الثغرات لأنها تهدد بشكل مباشر إيرادات الأعمال وثقة العملاء.


القدرات الأساسية

الاختبار القائم على القوالب (Template-Driven Testing)

حدد سيناريوهات السباق مرة واحدة بتنسيق YAML، وأعد استخدامها عبر المشاريع. يتطابق التنسيق مع قوالب Nuclei للألفة:

id: checkout-race
info:
  name: سباق الطلب المكرر عند الدفع
  severity: critical
race:
  mode: burst
  concurrency: 20
  request:
    method: POST
    path: /api/v1/checkout
    headers:
      Authorization: "Bearer {{session}}"
    body: '{"item_id": "SKU-001"}'
validate:
  follow_up:
    method: GET
    path: /api/v1/orders?user={{user_id}}
  expect:
    json_field: "orders.length"
    condition: equals
    value: 1

أوضاع هجوم متعددة

وضع الاندفاع (Burst Mode) — طلبات متوازية قائمة على Goroutines مع مزامنة دقيقة (مستقر، جاهز للإنتاج)

  • يُطلق N من goroutines التي تتزامن بدقة ميكروثانية
  • مثالي لمعظم التطبيقات ذات نوافذ السباق >5 مللي ثانية

مزامنة آخر بايت (Last-Byte Sync) — هجوم على مستوى TCP لـ HTTP/1.1 (جاهز للتنفيذ، في مرحلة الاختبار)

  • يُبقي جميع الاتصالات عند البايت الأخير من جسم الطلب
  • الإطلاق عبر إرسال close() broadcast لنوافذ أقل من مللي ثانية
  • فعال ضد الأهداف الموزعة والمحددة المعدل

الحزمة الواحدة (Single-Packet) — هجوم قائم على إطارات HTTP/2 (جاهز للتنفيذ، في مرحلة الاختبار)

  • يُرسل جميع الطلبات في مقطع TCP واحد
  • يستخدم تعدد الإرسال لاستقبال شبه متزامن من الخادم
  • يتجاوز بعض آليات تحديد المعدل

التحقق الذكي

تقوم RatRace تلقائيًا بما يلي:

  • بصمة الاستجابات عبر رمز الحالة + تجزئة الجسم لاكتشاف الشذوذ
  • تجميع النتائج لتحديد الاختلافات ذات الدلالة الإحصائية
  • حساب درجات الثقة بناءً على تكرار الشذوذ وحجمه
  • تنفيذ طلبات متابعة لتأكيد تغييرات الحالة (مثل: "هل تم شراء العنصر مرتين بالفعل؟")
  • دعم التحقق الشرطي باستخدام عوامل: equals, not_equals, greater_than, contains

التكامل مع سير العمل

استيراد الطلبات الموجودة:

# من أوامر curl
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o template.yaml

# من ملفات HAR المُصدَّرة من Burp
ratrace import --har session.har -o template.yaml

أتمتة CI/CD:

ratrace race -u $TARGET -t template.yaml --silent
echo $?  # رمز الخروج 10 = تم اكتشاف سباق، 0 = نظيف

إعداد التقارير الاحترافية:

# JSON للأتمتة
ratrace race -u $TARGET -t template.yaml -o results/

# تقارير HTML (مخطط للإصدار V2)
ratrace report --input results.json --format html

التثبيت

من المصدر

git clone https://github.com/bogdanticu88/ratrace.git
cd ratrace
go build ./cmd/ratrace
./ratrace --help

المتطلبات: Go 1.24+

دوكر

docker build -t ratrace:latest .
docker run --rm -it ratrace:latest race -u https://api.example.com -t template.yaml

الاستخدام

البدء السريع: تشغيل اختبار سباق

# 1. استيراد من curl أو استخدام قالب موجود
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o checkout.yaml

# 2. تنفيذ السباق
ratrace race -u https://api.example.com -t checkout.yaml -m burst -c 20

# 3. مراجعة النتائج
# يُظهر المخرجات:
# 🔴 [حرج] سباق الطلب المكرر عند الدفع
#     معدل الشذوذ: 91.7%
#     الثقة:       84%

مثال: سباق الدفع في التجارة الإلكترونية

ratrace race \
  -u https://shop.example.com \
  -t examples/templates/checkout-race.yaml \
  -m burst \
  -c 25 \
  --output results/

مثال: الوضع الصامت (لـ CI/CD)

# يعمل بدون سجلات مطوَّلة، يخرج بكود دلالي
ratrace race -u https://api.example.com -t template.yaml --silent

# تحقق من كود الخروج
if [ $? -eq 10 ]; then
  echo "تم العثور على سباق حالة!"
  exit 1
fi

مرجع الأوامر

race — تنفيذ هجوم سباق

ratrace race -u <url> -t <template> [options]

Options:
  -m, --mode string          burst|lastbyte|singlepacket (الافتراضي من القالب)
  -c, --concurrency int      عدد Goroutines (الافتراضي 20)
  -H, --header strings       رؤوس مخصصة (قابلة للتكرار)
  -x, --proxy string         عنوان URL للبروكسي للطلبات
  -o, --output string        دليل الإخراج للنتائج
  --timeout duration         مهلة الطلب (الافتراضي 10s)
  --insecure                 تخطي التحقق من شهادة TLS
  --dry-run                  تحليل القالب والخروج
  --silent                   كتم السجلات، عرض النتائج فقط

import — تحويل الطلبات إلى قوالب

ratrace import [--curl <command> | --har <file>] -o <output.yaml>

يحول الطلبات الموجودة (أوامر curl أو تصديرات HAR) إلى قوالب RatRace.
مفيد للتكامل مع سير العمل الحالية.

report — إنشاء التقارير

ratrace report --input results.json --format [html|json] --output report.html

ينشئ تقارير قابلة للقراءة البشرية من نتائج اختبار السباق.

ratelimit — اختبار تجاوز الحد الأقصى للمعدل

ratrace ratelimit -u <url> -c <concurrency>

يختبر ما إذا كانت نقاط النهاية معرضة لتجاوز الحد الأقصى للمعدل المتزامن.

تنسيق القالب

القالب هو ملفات YAML تحدد سيناريو سباق. المرجع الكامل:

id: معرف-فريد
info:
  name: "اسم قابل للقراءة البشرية"
  severity: critical|high|medium|low|info
  tags: [tag1, tag2]

race:
  mode: burst|lastbyte|singlepacket
  concurrency: 20
  request:
    method: POST|GET|PUT|DELETE|PATCH
    path: /api/endpoint
    headers:
      Authorization: "Bearer {{token}}"
      Custom-Header: "value"
    body: '{"json": "body", "user": "{{user_id}}"}'

validate:
  follow_up:
    method: GET
    path: /api/orders?user={{user_id}}
  expect:
    json_field: "orders.length"
    condition: equals|greater_than|contains|not_equals
    value: 1

المتغيرات (استخدم عناصر نائبة {{name}}):

  • يتم استبدالها عبر رؤوس سطر الأوامر أو ترميزها بشكل ثابت في القالب
  • مثال: ratrace race ... -H "Authorization: Bearer {{session_token}}"

المخرجات

مخرجات الطرفية

سجل نظيف وملون يوضح تقدم الاختبار:

تنزيل الأداة