
बेंचमार्क के हिस्से के रूप में उपलब्ध सभी लैब का पूरा रेपो
एक बेंचमार्क जो वेब सुरक्षा चुनौतियों पर AI एजेंटों का मूल्यांकन करता है, जो TarantuLabs इंजन द्वारा उत्पन्न किया गया है।
TarantuBench 100 कमजोर वेब एप्लिकेशनों का एक संग्रह है, जिनमें से प्रत्येक में एक छिपा हुआ फ़्लैग (TARANTU{...}) है। एक एजेंट का काम एप्लिकेशन के साथ HTTP पर इंटरैक्ट करके फ़्लैग को ढूँढना और निकालना है — ठीक वैसे ही जैसे एक मानव पेंटेस्टर करेगा।
चुनौतियाँ शुरुआती-स्तर के SQL इंजेक्शन लॉगिन बाईपास से लेकर उन्नत बहु-चरणीय आक्रमण शृंखलाओं तक होती हैं, जिनमें क्रम में 5 कमजोरियों का शोषण करना आवश्यक होता है — जिसमें बिज़नेस लॉजिक का दुरुपयोग, स्टोर्ड XSS से सत्र चोरी, JWT जालसाजी, SSRF, और आंतरिक API पर SQL इंजेक्शन शामिल हैं।
हर लैब एक स्व-निहित Node.js/Express एप्लिकेशन है जिसमें इन-मेमोरी SQLite डेटाबेस है। कोई बाहरी निर्भरता नहीं, नेटवर्क एक्सेस की आवश्यकता नहीं — बस सर्वर बूट करें और जाँच शुरू करें।
इस रिलीज़ में सभी चुनौतियाँ TarantuLabs के स्वामित्व वाले लैब जनरेशन इंजन का उपयोग करके उत्पन्न की गई थीं।
TarantuBench v1 एक परिपक्व, स्केलेबल बेंचमार्क है जो एक सिद्ध उत्पादन पाइपलाइन द्वारा संचालित है:
Node हार्नेस आवश्यकताएँ: Node.js 18+ और npm।
Inspect AI कार्य आवश्यकताएँ: Python 3.11+, Docker, और uv या कोई अन्य
PEP 517-संगत इंस्टॉलर।
चलने योग्य लैब डेटासेट Hugging Face पर प्रकाशित है
tarantulabs/TarantuBench पर।
इस GitHub रिपॉजिटरी में मूल्यांकन हार्नेस और दस्तावेज़ीकरण है।
git clone https://github.com/Trivulzianus/TarantuBench.git
cd TarantuBench
cd eval && npm install && cd ..
# Hugging Face से डेटासेट फ़ाइल डाउनलोड करें, या डेटासेट रिपो को क्लोन करें:
# git clone https://huggingface.co/datasets/tarantulabs/TarantuBench data
# अपने एजेंट को सभी 100 लैब के विरुद्ध चलाएँ
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--command "python my_agent.py --url {URL}" \
--timeout 300
# स्कोरकार्ड जनरेट करें
node eval/scorecard.js
औपचारिक मूल्यांकन चलाने से पहले, सत्यापित करें कि स्थानीय या Hugging Face डेटासेट में अपेक्षित पंक्ति संख्या और स्कीमा है:
node eval/validate-dataset.js --dataset data/tarantubench-v1.jsonl --expected-count 100
node eval/validate-dataset.js --hf tarantulabs/TarantuBench --expected-count 100
हार्नेस प्रत्येक लैब को बूट करता है, उसके सामने एक पारदर्शी लॉगिंग प्रॉक्सी रखता है, और आपके एजेंट कमांड को चलाता है ({URL} को लक्ष्य पते से बदलता है)। आपका एजेंट किसी भी भाषा में लिखा जा सकता है — उसे केवल HTTP अनुरोध करने और बॉडी {"flag": "TARANTU{...}"} के साथ POST {URL}/submit-flag के माध्यम से फ़्लैग सबमिट करने की आवश्यकता है।
# सर्वर मोड में एक लैब बूट करें — हार्नेस URL प्रिंट करता है, आप अपना एजेंट कनेक्ट करें
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--labs corporate-portal-chain-xss-idor \
--mode server --timeout 300
data/tarantubench-v1.jsonl में प्रत्येक पंक्ति एक चुनौती का प्रतिनिधित्व करती है:
| कॉलम | प्रकार | विवरण |
|---|---|---|
lab_id | string | अद्वितीय पहचानकर्ता |
title | string | मानव-पठनीय चुनौती नाम |
description | string | संक्षिप्त परिदृश्य विवरण (एजेंट को दिखाया जाता है) |
objectives | list[string] | एजेंट को क्या पूरा करने के लिए कहा जाता है |
hints | list[string] | वैकल्पिक क्रमिक संकेत (एब्लेशन अध्ययन के लिए) |
difficulty | string | Beginner, Intermediate, या Advanced |
category | string | प्राथमिक कमजोरी परिवार (जैसे, SQL Injection, XSS) |
vuln_subtype | string | विशिष्ट तकनीक (जैसे, sqli-union, xss-stored) |
chain_type | string or null | बहु-चरणीय शृंखला ID, या एकल-कमजोरी लैब के लिए null |
server_code | string | कमजोर एप्लिकेशन के लिए पूर्ण Node.js/Express स्रोत कोड |
dependencies | object | सर्वर चलाने के लिए आवश्यक npm पैकेज निर्भरताएँ |
| कठिनाई | संख्या | विवरण |
|---|---|---|
| Beginner | 35 | एकल कमजोरी, प्रत्यक्ष शोषण |
| Intermediate | 25 | गणना, फ़िल्टर बाईपास, या बहु-चरणीय तर्क की आवश्यकता |
| Advanced | 40 | बहु-चरणीय शृंखलाएँ, बिज़नेस लॉजिक दोष, या गहन शोषण |
| श्रेणी | संख्या |
|---|---|
| बहु-कमजोरी शृंखलाएँ | 34 |
| SQL Injection | 20 |
| IDOR (असुरक्षित प्रत्यक्ष वस्तु संदर्भ) | 11 |
| Auth/Authz बाईपास | 10 |
| XSS (क्रॉस-साइट स्क्रिप्टिंग) | 10 |
| बिज़नेस लॉजिक | 8 |
| कमांड इंजेक्शन | 5 |
| SSRF | 2 |
100 लैब में से 34 को कई कमजोरियों को जोड़ने की आवश्यकता है:
| शृंखला प्रकार | संख्या | चरण |
|---|---|---|
| SSRF → SQL Injection | 8 | SSRF के माध्यम से एक्सेस नियंत्रण बाईपास करें, फिर SQLi के माध्यम से फ़्लैग निकालें |
| SSRF → Blind SQLi | 5 | आंतरिक एंडपॉइंट तक पहुँचने के लिए SSRF, फिर अंध बूलियन निष्कर्षण |
| XSS → SQL Injection | 7 | स्टोर्ड XSS के माध्यम से एडमिन सत्र चुराएँ, फिर SQLi के साथ एडमिन-केवल खोज का उपयोग करें |
| XSS → IDOR | 5 | स्टोर्ड XSS के माध्यम से एडमिन सत्र चुराएँ, फिर IDOR के माध्यम से छिपे डेटा तक पहुँचें |
| JWT जालसाजी → Blind SQLi | 4 | कमजोर JWT गुप्त को क्रैक करें, उन्नत टोकन जाली बनाएँ, फ़्लैग वर्ण दर वर्ण निकालें |
| JWT जालसाजी → IDOR | 3 | JWT क्रैक करें, उन्नत भूमिका जाली बनाएँ, प्रतिबंधित API एंडपॉइंट तक पहुँचें |
| बिज़नेस लॉजिक → XSS → JWT → SSRF → SQLi | 1 | रेफ़रल दुरुपयोग, सत्र चोरी, JWT जालसाजी, SSRF पिवट और यूनियन SQLi के माध्यम से 5-चरणीय शृंखला |
| XSS → JWT → SSRF → SQLi | 1 | सत्र चोरी, JWT जालसाजी, SSRF और SQL इंजेक्शन के माध्यम से 4-चरणीय शृंखला |
लैब 20 यथार्थवादी एप्लिकेशन थीमों में वितरित हैं — बैंकिंग पोर्टल, अस्पताल प्रणाली, ई-कॉमर्स स्टोर, IoT डैशबोर्ड, सरकारी सेवाएँ, गेमिंग प्लेटफ़ॉर्म, और अधिक — यह सुनिश्चित करते हुए कि कमजोरी पैटर्न विविध संदर्भों में परीक्षण किए जाते हैं।