
प्राइम क्रॉस साइट रिक्वेस्ट फोर्जरी (CSRF) ऑडिट और एक्सप्लॉइटेशन टूलकिट।
<h1 align="center">
<br>
<a href="https://github.com/0xinfection/xsrfprobe"><img src="https://github.com/user-attachments/assets/c8e9ee87-f60b-4ab3-b3ae-4a79808adc11" alt="xsrfprobe-logo" width="25%" /></a>
<br>
<br>
XSRFProbe
</h1>
<h4 align="center">क्रॉस-साइट रिक्वेस्ट फोर्जरी ऑडिट और शोषण के लिए प्रमुख टूलकिट।</h4>
<p align="center">
<a href="https://docs.python.org/3/download.html">
<img src="https://img.shields.io/badge/Python-3.11+-green.svg">
</a>
<a href="https://github.com/0xinfection/XSRFProbe/releases">
<img src="https://img.shields.io/badge/Version-v3.0.0%20(stable)-blue.svg">
</a>
<a href="https://github.com/0xinfection/XSRFProbe/blob/master/LICENSE">
<img src="https://img.shields.io/badge/License-GPLv3-orange.svg">
</a>
</p>
## परिचय
__XSRFProbe__ एक उन्नत [क्रॉस-साइट रिक्वेस्ट फोर्जरी](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)) (CSRF/XSRF) ऑडिट और शोषण टूलकिट है। यह एक शक्तिशाली क्रॉलिंग इंजन और अनेक व्यवस्थित जाँचों से सुसज्जित है, जो CSRF कमजोरियों, उनसे संबंधित बाइपास, और प्रत्येक पाई गई कमजोरी के लिए शोषण योग्य प्रूफ-ऑफ-कॉन्सेप्ट उत्पन्न करने में सक्षम है। XSRFProbe कैसे काम करता है, इसके बारे में अधिक जानकारी के लिए [विकी](https://github.com/0xInfection/XSRFProbe/wiki/) पर [XSRFProbe आंतरिक](https://github.com/0xInfection/XSRFProbe/wiki#xsrfprobe-internals) देखें।
<img src="https://github.com/user-attachments/assets/11a4d30a-bcf1-4d4e-9ec4-5a4e440f8842" alt="banner-image">
<br><br>
<p align="center">
<a href="https://github.com/0xinfection/xsrfprobe/wiki">XSRFProbe विकी</a> •
<a href="https://github.com/0xinfection/xsrfprobe/wiki/Getting-Started">आरंभ करना</a> •
<a href="https://github.com/0xinfection/xsrfprobe/wiki/General-Usage">सामान्य उपयोग</a> •
<a href="https://github.com/0xinfection/xsrfprobe/wiki/Advanced-Usage">उन्नत उपयोग</a> •
<a href="https://github.com/0xinfection/xsrfprobe/wiki/XSRFProbe-Internals">XSRFProbe आंतरिक</a> •
<a href="https://github.com/0xinfection/xsrfprobe#gallery">गैलरी</a>
</p>
## कुछ विशेषताएँ
- [x] व्यवस्थित जाँचों की पूरी बैटरी चलाता है — प्रतिक्रिया डिफिंग/बेंचमार्क इंजन द्वारा समर्थित — एंडपॉइंट को कमजोर घोषित करने से पहले।
- [x] कई एंटी-CSRF टोकन कार्यान्वयनों का पता लगाता है और सक्रिय रूप से छेड़छाड़ करता है: अनुरोध-विधि स्विच, टोकन हटाना, रिक्त/डुप्लिकेट मान, गैर-सत्र-बद्ध टोकन, डबल-सबमिट कुकी और कस्टम-हेडर टोकन।
- [x] वास्तविक दुनिया के बाइपास (हेडर हटाना, रेगेक्स/सबडोमेन ट्रिक्स, `Origin: null`) के साथ-साथ मेथड-ओवरराइड और Content-Type बाइपास के साथ Referer और Origin सत्यापन की जाँच करता है।
- [x] SameSite कुकी सुरक्षा का विश्लेषण करता है, सबलिंग-डोमेन बाइपास परीक्षण के लिए वैकल्पिक सबडोमेन गणना (crt.sh के माध्यम से) के साथ।
- [x] एक शक्तिशाली क्रॉलर के साथ काम करता है जिसमें निर्धारणात्मक, सीमित क्रॉलिंग और स्कैनिंग ( `--max-urls`, `--max-depth` और `--crawl-timeout` के माध्यम से कॉन्फ़िगर करने योग्य) शामिल है।
- [x] ब्राउज़र-निर्भर परीक्षणों और उत्पन्न PoCs के स्वचालित सत्यापन के लिए वैकल्पिक हेडलेस फ़ायरफ़ॉक्स (Selenium) एकीकरण।
- [x] एंट्रॉपी और एन्कोडिंग जाँच का उपयोग करके सटीक [टोकन-शक्ति पहचान](https://github.com/0xInfection/XSRFProbe/wiki/XSRFProbe-Internals#token-randomness-calculation) और [विश्लेषण](https://github.com/0xInfection/XSRFProbe/wiki/XSRFProbe-Internals#post-scan-token-analysis)।
- [x] सामान्य और साथ ही दुर्भावनापूर्ण शोषण योग्य CSRF प्रूफ ऑफ कॉन्सेप्ट उत्पन्न कर सकता है।
- [x] कस्टम कुकी मान, सामान्य हेडर और एक JSON रिपोर्ट के लिए आउट-ऑफ़-द-बॉक्स समर्थन — प्रत्येक निष्कर्ष में एक गंभीरता रेटिंग और शोषण योग्यता शर्त होती है।
- [x] उपयोगकर्ता [हर चीज़ पर नियंत्रण](https://github.com/0xInfection/XSRFProbe/wiki/Advanced-Usage#xsrfprobe-configuration-variables) रखता है जो स्कैनर करता है।
- [x] पूर्ण वर्बोज़ समर्थन और त्रुटियों, कमजोरियों और टोकनों की विस्तृत लॉगिंग के साथ उपयोगकर्ता-अनुकूल इंटरैक्शन वातावरण।
## किए गए कमजोरी परीक्षण:
XSRFProbe द्वारा चलाई जाने वाली प्रत्येक जाँच का एक अद्वितीय पहचानकर्ता होता है। ID कंसोल आउटपुट में दिखाई जाती है (जैसे `[T6] VULNERABLE: ...`) और JSON रिपोर्ट में प्रत्येक निष्कर्ष के `test_id` फ़ील्ड के रूप में संग्रहीत होती है (इसके `severity` और, जहाँ प्रासंगिक हो, `details` के अंतर्गत एक `exploitability` नोट के साथ), ताकि प्रत्येक निष्कर्ष उस सटीक परीक्षण से जुड़ा हो जिसने इसे उत्पन्न किया।
| ID | श्रेणी | जाँच |
|----|----------|-------|
| `D1` | टोकन उपस्थिति | कोई एंटी-CSRF टोकन मौजूद नहीं (सामान्य अनुरोध जालसाजी) |
| `D2` | टोकन उपस्थिति | लॉगिन फॉर्म में CSRF टोकन गायब (लॉगिन CSRF) |
| `T2` | टोकन छेड़छाड़ | सत्यापन अनुरोध विधि से बंधा (GET ↔ POST स्विच) |
| `T3` | टोकन छेड़छाड़ | टोकन को पूरी तरह से हटाया जा सकता है |
| `T4` | टोकन छेड़छाड़ | टोकन उपयोगकर्ता सत्र से बंधा नहीं (क्रॉस-सत्र रीप्ले) |
| `T5` | टोकन छेड़छाड़ | टोकन गैर-सत्र कुकी से बंधा (जैसे `csrfKey`) |
| `T6` | टोकन छेड़छाड़ | नाभिक डबल-सबमिट कुकी (कुकी == बॉडी, कोई बाइंडिंग नहीं) |
| `T7` | टोकन छेड़छाड़ | खाली टोकन मान स्वीकार किया गया |
| `T8` | टोकन छेड़छाड़ | कस्टम-हेडर टोकन को हटाया या जाली बनाया जा सकता है |
| `M1` | विधि / Content-Type | `_method` पैरामीटर के माध्यम से HTTP विधि ओवरराइड |
| `M2` | विधि / Content-Type | `X-HTTP-Method-Override` हेडर के माध्यम से HTTP विधि ओवरराइड |
| `M4` | विधि / Content-Type | वैकल्पिक `Content-Type` के माध्यम से सत्यापन बाइपास |
| `R0` | Referer | फॉर्म सबमिशन पर Referer हेडर सत्यापित नहीं |
| `R1` | Referer | हेडर हटाकर Referer सत्यापन बाइपास |
| `R2a` | Referer | Referer रेगेक्स बाइपास — लक्ष्य आक्रमणकारी सबडोमेन के रूप में |
| `R2b` | Referer | Referer रेगेक्स बाइपास — लक्ष्य क्वेरी स्ट्रिंग में |
| `R2c` | Referer | Referer रेगेक्स बाइपास — लक्ष्य पथ में |
| `O1` | Origin | `Origin: null` के साथ Origin सत्यापन बाइपास |
| `O2` | Origin | सबडोमेन ट्रिक के साथ Origin सत्यापन बाइपास |
| `O3` | Origin | हेडर हटाकर Origin सत्यापन बाइपास |
| `S2` | SameSite (ब्राउज़र) | क्लाइंट-साइड रीडायरेक्ट गैजेट के माध्यम से `SameSite=Strict` बाइपास |
| `S3` | SameSite (ब्राउज़र) | सहोदर सबडोमेन पर XSS के माध्यम से `SameSite=Strict` बाइपास |
| `S4` | SameSite (ब्राउज़र) | कुकी-रिफ्रेश / OAuth प्रवाह के माध्यम से `SameSite=Lax` बाइपास |
| `C1` | कुकी स्थिति | कुकी `SameSite` विशेषता विश्लेषण (`None`/`Lax`/`Strict`) |
| `C2` | कुकी स्थिति | कुकीज़ पर `SameSite` विशेषता सेट नहीं |
| `E1` | टोकन शक्ति | टोकन कमजोर/संरचित हैश एन्कोडिंग का उपयोग करता है |
| `A1` | टोकन शक्ति | स्कैन के बाद टोकन पूर्वानुमान/जालसाजी विश्लेषण |
> `S*` जाँचों के लिए वैकल्पिक हेडलेस-ब्राउज़र एकीकरण (`--browser`) की आवश्यकता है। `T*`/`M*`/`R*`/`O*` HTTP-स्तर की जाँचें हैं जो प्रतिक्रिया डिफिंग/बेंचमार्क इंजन द्वारा नियंत्रित हैं।
## गैलरी
आइए XSRFProbe के कुछ वास्तविक दुनिया के परिदृश्य देखें:
<img src="https://github.com/user-attachments/assets/0fc41fb9-d2c3-400f-8b8f-f4f0093457e1" width=50% /><img src="https://github.com/user-attachments/assets/e2beffb1-5cae-4cb6-9740-2a49f6e15bf8" width=50% />
<img src="https://github.com/user-attachments/assets/47d48c78-bb9a-4eeb-b1ea-ab9ba9ab694c" width=100% />
<img src="https://github.com/user-attachments/assets/e23acca5-f66b-4349-84b1-09cff64e1320" width=50% /><img src="https://github.com/user-attachments/assets/1fd7fe7e-b3de-41e9-aa9f-24d0f7fb151e" width=50% />
## स्थापना और उपयोग
> पूर्ण उपयोग जानकारी के लिए, कृपया विकी देखें — [सामान्य उपयोग](https://github.com/0xinfection/xsrfprobe/wiki/general-usage) और [उन्नत उपयोग](https://github.com/0xinfection/xsrfprobe/wiki/advanced-usage)।
### Pypi के माध्यम से स्थापना:
XSRFProbe को एक ही कमांड से आसानी से स्थापित किया जा सकता है:
```
pip install xsrfprobe
```
### मैन्युअल स्थापना:
- मूल बातों के लिए, पहला कदम टूल को स्थापित करना है:
```
pip install .
```
- अब, टूल को इस प्रकार चलाया जा सकता है:
```
xsrfprobe --help
```
- ब्राउज़र-निर्भर परीक्षणों (`--browser`, `--auto-validate-poc`) के लिए अतिरिक्त रूप से आवश्यक है कि [geckodriver](https://github.com/mozilla/geckodriver/releases) आपके `PATH` में उपलब्ध हो (या `--geckodriver-path` के माध्यम से इंगित किया गया हो)।
- किसी साइट पर XSRFProbe का परीक्षण करने के बाद, आपकी वर्तमान कार्यशील निर्देशिका में `xsrfprobe-output` नामक एक आउटपुट फ़ोल्डर बनाया जाता है। इस फ़ोल्डर के अंतर्गत आप स्कैन के दौरान एकत्र विस्तृत लॉग और जानकारी देख सकते हैं (मशीन-पठनीय रिपोर्ट के लिए `--json` पास करें)।
## संस्करण और लाइसेंस
XSRFProbe वर्तमान में `v3.0.0` है और यह कार्य [GNU जनरल पब्लिक लाइसेंस (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) के तहत लाइसेंस प्राप्त है।
### चेतावनियाँ
इस टूल का उपयोग किसी लाइव साइट पर न करें!
ऐसा इसलिए है क्योंकि यह टूल सभी प्रकार के फॉर्म सबमिशन स्वचालित रूप से करने के लिए डिज़ाइन किया गया है जो साइट को खराब कर सकता है। कभी-कभी आप डेटाबेस को खराब कर सकते हैं और संभवतः साइट पर DoS भी कर सकते हैं।
किसी डिस्पोज़ेबल/डमी सेटअप/साइट पर परीक्षण करें!
### अस्वीकरण
पूर्व पारस्परिक सहमति के बिना वेबसाइटों के परीक्षण के लिए XSRFProbe का उपयोग एक अवैध गतिविधि माना जा सकता है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। लेखक कोई देयता नहीं मानता है और इस प्रोग्राम के किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं है।
## लेखक के शब्द
यह परियोजना पूरी तरह से क्रॉस-साइट रिक्वेस्ट फोर्जरी हमलों पर मेरे स्वयं के शोध और वेब अनुप्रयोगों के साथ मेरे स्वयं के अनुभव पर आधारित है। आप यह समझने में मदद के लिए स्रोत कोड के माध्यम से जा सकते हैं कि यह टूलकिट कैसे बनाया गया था। उपयोगी [पुल अनुरोध](https://github.com/0xInfection/XSRFProbe/wiki/Contributing), [विचार और मुद्दे](https://github.com/0xInfection/XSRFProbe/wiki/Reporting-Bugs#before-submitting) का स्वागत है। यदि आप देखना चाहते हैं कि XSRFProbe कैसे विकसित किया जा रहा है, तो [विकास बोर्ड](https://github.com/0xInfection/XSRFProbe/projects/1) देखें।
> ♥ के साथ तैयार किया गया [@0xInfection](https://x.com/0xInfection) द्वारा