Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
RatRace — हल्का CLI टूल, जो वेब एप्लिकेशन, API और आधुनिक सेवाओं में व्यवस्थित रूप से रेस कंडीशन (Race Conditions) का पता लगाने और उनका शोषण करने के लिए डिज़ाइन किया गया है। | Kitploit
उपकरण/GitHubGitHub/bogdanticu88/ratrace
भेद्यता स्कैनरशोषणस्क्रिप्टिंग और स्वचालनएपीआई सुरक्षा परीक्षणवेब सुरक्षाफज़िंगपेनिट्रेशन टेस्टिंगDevSecOps
GitHubbogdanticu88/ratrace

RatRace

हल्का CLI टूल, जो वेब एप्लिकेशन, API और आधुनिक सेवाओं में व्यवस्थित रूप से रेस कंडीशन (Race Conditions) का पता लगाने और उनका शोषण करने के लिए डिज़ाइन किया गया है।

रिपॉजिटरी देखें
104 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

RatRace

RatRace - रेस कंडीशन टेस्टिंग टूलकिट

वेब अनुप्रयोगों, API और आधुनिक सेवाओं में रेस कंडीशन का पता लगाने और उनका शोषण करने के लिए एक हल्का CLI टूल।



Go Version License Status Platform Security Build


यह किस समस्या का समाधान करता है

रेस कंडीशन आधुनिक अनुप्रयोगों में सबसे अधिक प्रभाव वाली सुरक्षा कमजोरियों में से एक हैं, फिर भी स्वचालित स्कैनर इन्हें कम ही पकड़ पाते हैं। जहाँ Nuclei, ffuf और sqlmap जैसे उपकरण स्थैतिक कमजोरियों का पता लगाने में उत्कृष्ट हैं, वे मूल रूप से समवर्तीता-आधारित समस्याओं के प्रति अंधे हैं।

पेंटेस्टर्स आज एक विकल्प का सामना करते हैं: प्रत्येक एंगेजमेंट के लिए मैन्युअल रूप से डिस्पोजेबल स्क्रिप्ट लिखें, या रेस कंडीशन परीक्षण को पूरी तरह से छोड़ दें। दोनों ही विकल्प स्केलेबल या पेशेवर नहीं हैं।

RatRace इसका समाधान करता है रेस कंडीशन परीक्षण के लिए एक पॉलिश, दोहराए जाने योग्य वर्कफ़्लो प्रदान करके—जो पहले एड-हॉक स्क्रिप्टिंग था, उसे एक व्यवस्थित प्रक्रिया में बदलता है जो CI/CD पाइपलाइनों के साथ एकीकृत होती है और पेशेवर रिपोर्ट उत्पन्न करती है।

वास्तविक-विश्व प्रभाव

रेस कंडीशन कमजोरियाँ अक्सर उच्च-प्रभाव वाले क्षेत्रों में दिखाई देती हैं:

  • ई-कॉमर्स: डुप्लीकेट ऑर्डर, इन्वेंट्री ओवरसेलिंग, डिस्काउंट स्टैकिंग
  • फिनटेक: डबल ट्रांसफर, रेस-आधारित विशेषाधिकार वृद्धि, लेन-देन रीप्ले
  • प्रमाणीकरण: टोकन ड्रेनिंग, सेशन फिक्सेशन, समवर्ती पासवर्ड रीसेट
  • दर सीमा: समवर्ती अनुरोधों, वितरित दुरुपयोग द्वारा बायपास

ये बग बग बाउंटी प्रोग्रामों में लगातार सबसे अधिक बाउंटी अर्जित करते हैं क्योंकि ये सीधे व्यावसायिक राजस्व और ग्राहक विश्वास को खतरे में डालते हैं।


मुख्य क्षमताएँ

टेम्पलेट-चालित परीक्षण

एक बार YAML में रेस परिदृश्यों को परिभाषित करें, परियोजनाओं में पुन: उपयोग करें। फ़ॉर्मेट परिचितता के लिए Nuclei टेम्पलेट्स को दर्शाता है:

root@kitploit:~
id: checkout-race
info:
  name: Checkout Duplicate Order Race
  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

एकाधिक आक्रमण मोड

बर्स्ट मोड — सटीक सिंक्रोनाइज़ेशन के साथ गोरूटीन-आधारित समानांतर अनुरोध (स्थिर, उत्पादन-तैयार)

  • N गोरूटीन लॉन्च करता है जो माइक्रोसेकंड सटीकता पर सिंक्रोनाइज़ होते हैं
  • 5ms रेस विंडो वाले अधिकांश अनुप्रयोगों के लिए आदर्श

लास्ट-बाइट सिंक — HTTP/1.1 TCP-स्तरीय आक्रमण (कार्यान्वयन तैयार, परीक्षण चरण)

  • सभी कनेक्शनों को अनुरोध बॉडी के अंतिम बाइट पर रोकता है
  • सब-मिलीसेकंड विंडो के लिए close() प्रसारण द्वारा जारी करें
  • लोड-बैलेंस्ड और दर-सीमित लक्ष्यों के विरुद्ध प्रभावी

सिंगल-पैकेट — HTTP/2 फ्रेम-आधारित आक्रमण (कार्यान्वयन तैयार, परीक्षण चरण)

  • एक ही TCP सेगमेंट में सभी अनुरोध भेजता है
  • लगभग-एकसाथ सर्वर प्राप्ति के लिए मल्टीप्लेक्सिंग का लाभ उठाता है
  • कुछ दर सीमा तंत्रों को बायपास करता है

बुद्धिमान सत्यापन

RatRace स्वचालित रूप से:

  • प्रतिक्रियाओं को फ़िंगरप्रिंट करता है स्थिति कोड + बॉडी हैश द्वारा विसंगतियों का पता लगाने के लिए
  • परिणामों को क्लस्टर करता है सांख्यिकीय रूप से महत्वपूर्ण अंतरों की पहचान करने के लिए
  • विश्वास स्कोर की गणना करता है विसंगति आवृत्ति और परिमाण के आधार पर
  • फ़ॉलो-अप अनुरोध निष्पादित करता है स्थिति परिवर्तनों की पुष्टि करने के लिए (जैसे, "क्या वस्तु वास्तव में दो बार खरीदी गई?")
  • सशर्त सत्यापन का समर्थन करता है ऑपरेटरों के साथ: equals, not_equals, greater_than, contains

वर्कफ़्लो एकीकरण

मौजूदा अनुरोध आयात करें:

root@kitploit:~
# curl कमांड से
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o template.yaml

# Burp निर्यातित HAR फ़ाइलों से
ratrace import --har session.har -o template.yaml

CI/CD स्वचालन:

root@kitploit:~
ratrace race -u $TARGET -t template.yaml --silent
echo $?  # एग्जिट कोड 10 = रेस मिली, 0 = साफ

पेशेवर रिपोर्टिंग:

root@kitploit:~
# स्वचालन के लिए JSON
ratrace race -u $TARGET -t template.yaml -o results/

# HTML रिपोर्ट (योजित V2)
ratrace report --input results.json --format html

स्थापना

स्रोत से

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

आवश्यकताएँ: Go 1.24+

Docker

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

उपयोग

त्वरित प्रारंभ: रेस टेस्ट चलाएँ

root@kitploit:~
# 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. निष्कर्षों की समीक्षा करें
# आउटपुट दिखाता है:
# 🔴 [CRITICAL] Checkout Duplicate Order Race
#     Anomaly Rate: 91.7%
#     Confidence:   84%

उदाहरण: ई-कॉमर्स चेकआउट रेस

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

उदाहरण: साइलेंट मोड (CI/CD के लिए)

root@kitploit:~
# वर्बोज़ लॉग के बिना चलता है, सिमैंटिक कोड के साथ बाहर निकलता है
ratrace race -u https://api.example.com -t template.yaml --silent

# एग्जिट कोड जांचें
if [ $? -eq 10 ]; then
  echo "रेस कंडीशन मिली!"
  exit 1
fi

कमांड संदर्भ

race — रेस आक्रमण निष्पादित करें

root@kitploit:~
ratrace race -u <url> -t <template> [options]

Options:
  -m, --mode string          burst|lastbyte|singlepacket (टेम्पलेट से डिफ़ॉल्ट)
  -c, --concurrency int      गोरूटीन गणना (डिफ़ॉल्ट 20)
  -H, --header strings       कस्टम हेडर (दोहराने योग्य)
  -x, --proxy string         अनुरोधों के लिए प्रॉक्सी URL
  -o, --output string        परिणामों के लिए आउटपुट निर्देशिका
  --timeout duration         अनुरोध टाइमआउट (डिफ़ॉल्ट 10s)
  --insecure                 TLS प्रमाणपत्र सत्यापन छोड़ें
  --dry-run                  टेम्पलेट पार्स करें और बाहर निकलें
  --silent                   लॉग दबाएँ, केवल निष्कर्ष दिखाएँ

import — अनुरोधों को टेम्पलेट्स में बदलें

root@kitploit:~
ratrace import [--curl <command> | --har <file>] -o <output.yaml>

मौजूदा अनुरोधों (curl कमांड या HAR निर्यात) को RatRace टेम्पलेट्स में बदलता है।
मौजूदा वर्कफ़्लो के साथ एकीकृत करने के लिए उपयोगी।

report — रिपोर्ट उत्पन्न करें

root@kitploit:~
ratrace report --input results.json --format [html|json] --output report.html

रेस टेस्ट परिणामों से मानव-पठनीय रिपोर्ट उत्पन्न करता है।

ratelimit — दर सीमा बायपास का परीक्षण करें

root@kitploit:~
ratrace ratelimit -u <url> -c <concurrency>

परीक्षण करता है कि क्या एंडपॉइंट समवर्ती दर सीमा बायपास के लिए कमजोर हैं।

टेम्पलेट प्रारूप

टेम्पलेट YAML फ़ाइलें हैं जो एक रेस परिदृश्य को परिभाषित करती हैं। पूर्ण संदर्भ:

root@kitploit:~
id: unique-identifier
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}}"

आउटपुट

टर्मिनल आउटपुट

स्वच्छ, रंग-कोडित लॉगिंग परीक्षण प्रगति दिखाती है:

root@kitploit:~
[INF] Loading template  path=checkout-race.yaml
[INF] Template loaded  id=checkout-race  mode=burst
[RUN] Firing burst attack  concurrency=20
[INF] All requests completed  total=20
[RUN] Clustering responses  baseline=17  anomalous=3
[RACE] Race condition detected  anomaly_rate=15%  confidence=94%
[CONF] Validation passed  field=orders.length  expected=1
[INF] Race test complete  findings=1

Templates: 1  Requests: 20  Time: 3.2s

🔴 [CRITICAL] Checkout Duplicate Order Race
    Anomaly Rate:  15.0%
    Confidence:    94%
    Status Diff:   201 → 200
    Field Diffs:   order_id (100 → 101)

JSON परिणाम

पूर्ण परिणाम स्वचालन और संग्रह के लिए results_<timestamp>.json में सहेजे जाते हैं:

root@kitploit:~
{
  "TemplateID": "checkout-race",
  "Target": "https://api.example.com/api/v1/checkout",
  "Mode": "burst",
  "Concurrency": 20,
  "TotalRequests": 20,
  "Duration": 3200000000,
  "Findings": [
    {
      "TemplateName": "Checkout Duplicate Order Race",
      "Severity": "critical",
      "AnomalyRate": 0.15,
      "Confidence": 0.94,
      "Diff": {
        "StatusChanged": true,
        "BaselineStatus": 201,
        "AnomalousStatus": 200
      }
    }
  ]
}

एग्जिट कोड

CI/CD एकीकरण और स्वचालन के लिए उपयोग किया जाता है:


विकास

बिल्ड

root@kitploit:~
make build              # बाइनरी संकलित करें

परीक्षण

root@kitploit:~
make test              # सभी परीक्षण
make test-unit         # केवल यूनिट परीक्षण
make test-int          # एकीकरण परीक्षण
make coverage          # कवरेज रिपोर्ट (HTML)

लिंटिंग और गुणवत्ता

root@kitploit:~
make lint              # लिंटर चलाएँ

उदाहरण

root@kitploit:~
make run-race          # बिल्ड करें और उदाहरण चलाएँ

आर्किटेक्चर

root@kitploit:~
cmd/ratrace/
  └── main.go           प्रवेश बिंदु, CLI परिभाषा

internal/
  ├── cmd/              उप-कमांड कार्यान्वयन
  ├── engine/           रेस आक्रमण मोड (burst, lastbyte, singlepacket)
  ├── validator/        प्रतिक्रिया क्लस्टरिंग, अंतर, अनुवर्ती जाँच
  ├── importer/         HAR और curl पार्सर
  ├── reporter/         JSON और HTML आउटपुट
  ├── template/         YAML पार्सिंग और टेम्पलेटिंग
  ├── log/              संरचित रंग लॉगिंग
  └── models/           साझा डेटा प्रकार

स्थिति और रोडमैप

V1 (वर्तमान)

  • ✅ बर्स्ट मोड गोरूटीन सिंक्रोनाइज़ेशन के साथ
  • ✅ प्रतिक्रिया क्लस्टरिंग और विसंगति का पता लगाना
  • ✅ विश्वास स्कोरिंग
  • ✅ स्थितियों के साथ अनुवर्ती सत्यापन
  • ✅ HAR/curl आयात
  • ✅ JSON आउटपुट
  • ✅ CI/CD के लिए साइलेंट मोड
  • ⏳ लास्ट-बाइट सिंक मोड (कार्यान्वयन तैयार, परीक्षण की आवश्यकता)
  • ⏳ सिंगल-पैकेट मोड (कार्यान्वयन तैयार, परीक्षण की आवश्यकता)

V2 (योजित)

  • HTML रिपोर्ट निर्माण
  • PoC स्क्रिप्ट निर्माण
  • दर सीमा बायपास विशेषज्ञता
  • Burp Suite XML आयात
  • gRPC रेस परीक्षण
  • WebSocket रेस परीक्षण
  • टेम्पलेट रजिस्ट्री और सामुदायिक टेम्पलेट
  • Nuclei एकीकरण

योगदान

मुद्दे, PR और टेम्पलेट योगदान का स्वागत है। कृपया सुनिश्चित करें:

  • कोड कोडबेस में मौजूदा पैटर्न का पालन करता है
  • परीक्षण पास करें: make test
  • लिंटर पास करें: make lint

लाइसेंस

MIT


अस्वीकरण

RatRace अधिकृत सुरक्षा परीक्षण, बग बाउंटी प्रोग्राम और पेनिट्रेशन परीक्षणों के लिए डिज़ाइन किया गया है। केवल उन प्रणालियों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति है। दूसरों की प्रणालियों का अनधिकृत परीक्षण अवैध है।


लेखक

Bogdan Ticu — सुरक्षा अनुसंधान और इंजीनियरिंग

मुद्दों, प्रश्नों या सुरक्षा रिपोर्ट के लिए: GitHub Issues

टूल डाउनलोड करें
कोडअर्थ
0सफलता — कोई रेस कंडीशन नहीं मिली
3डेटा त्रुटि — टेम्पलेट नहीं मिला, पार्स त्रुटि
4निष्पादन त्रुटि — नेटवर्क विफलता, इंजन त्रुटि
10रेस कंडीशन मिली — कार्रवाई आवश्यक
11दर सीमा बायपास की पुष्टि हुई
12विसंगति का पता चला लेकिन सत्यापन अनिर्णायक