
xpath एक तेज़, बहु-तकनीक XPath इंजेक्शन स्कैनर है जो Nim में लिखा गया है। यह व्यावहारिक पहचान, प्रतिक्रिया तुलना, दृश्य निष्कर्षण, ब्लाइंड निष्कर्षण पर केंद्रित है।
अधिकृत सुरक्षा परीक्षण के लिए उन्नत XPath इंजेक्शन स्कैनर।
निर्माता: Chokri Hammedi (blue0x1) · MIT लाइसेंस
xpath Nim में लिखा गया एक तेज़, बहु-तकनीक XPath इंजेक्शन स्कैनर है। यह वास्तविक दुनिया के XML-आधारित अनुप्रयोगों के लिए व्यावहारिक पहचान, प्रतिक्रिया तुलना, दृश्य निष्कर्षण, ब्लाइंड निष्कर्षण और पेलोड कवरेज पर केंद्रित है।
इसकी Nim मानक लाइब्रेरी के अलावा कोई बाहरी रनटाइम निर्भरता नहीं है।
| क्षेत्र | समर्थन |
|---|---|
| पहचान | त्रुटि-आधारित, बूलियन-आधारित ब्लाइंड, समय-आधारित ब्लाइंड, प्रमाणीकरण बायपास, यूनियन/नोड-चयन |
| निष्कर्षण | दृश्य HTML पार्सिंग, सेलेक्टर यूनियन निष्कर्षण, ब्लाइंड XPath डेटा निष्कर्षण |
| पेलोड | क्लासिक, प्रेडिकेट, फ़ंक्शन-आधारित, पाथ ब्रेकआउट, एन्कोडेड, एंटिटी, मिश्रित-केस वेरिएंट |
| खोज | URL पैरामीटर पहचान और HTML फ़ॉर्म क्रॉलिंग |
| बाईपास | WAF/IDS संकेतक, URL-एन्कोडेड और एंटिटी-आधारित बायपास पेलोड |
| आउटपुट | मानव-पठनीय टर्मिनल रिपोर्ट और JSON रिपोर्ट निर्यात |
| ट्रांसपोर्ट | कुकीज़, हेडर, प्रॉक्सी, रीट्राय, टाइमआउट, User-Agent, रीडायरेक्ट नियंत्रण |
nimble install xpath
यह आधिकारिक Nim पैकेज सूची से नवीनतम पैकेज स्थापित करता है।
git clone https://github.com/blue0x1/xpath.git
cd xpath
make linux
make test
Linux बाइनरी यहाँ लिखी जाती है:
dist/xpath-linux-amd64
sudo make install
डिफ़ॉल्ट रूप से यह यहाँ स्थापित करता है:
/usr/local/bin/xpath
इंस्टॉल प्रीफ़िक्स बदलने के लिए:
sudo make install PREFIX=/usr
make deb
sudo dpkg -i dist/xpath_1.0.0_amd64.deb
make windows
Windows बाइनरी यहाँ लिखी जाती है:
dist/xpath-windows-amd64.exe
Linux पर, Windows बिल्ड के लिए MinGW आवश्यक है:
sudo apt install mingw-w64
GET पैरामीटर स्कैन करें:
xpath -u "http://target.local/search?q=test" -p q
सभी पहचाने गए क्वेरी पैरामीटर स्कैन करें:
xpath -u "http://target.local/search?q=test&id=1"
POST बॉडी स्कैन करें:
xpath -u "http://target.local/login" -m POST -d "user=*&pass=test"
सभी तकनीकें चलाएँ और संभव होने पर दृश्य या ब्लाइंड डेटा निकालें:
xpath -u "http://target.local/search?q=test" -p q -t A -x
प्रॉक्सी का उपयोग करें:
xpath -u "http://target.local/search?q=test" -p q --proxy http://127.0.0.1:8080
JSON आउटपुट सहेजें:
xpath -u "http://target.local/search?q=test" -p q -t A -o report.json -f json
USAGE
xpath [OPTIONS] -u <URL>
TARGET
-u, --url <URL> Target URL
-m, --method <METHOD> HTTP method: GET or POST
-d, --data <DATA> POST body, use * to mark injection point
-p, --param <PARAM> Parameter(s) to test, comma-separated
-c, --cookie <COOKIE> Cookie string
-H, --header <HEADER> Extra header, repeatable
DETECTION
-t, --technique <FLAGS> E, B, T, U, P, or A
-l, --level <1-5> Payload thoroughness level
-x, --extract Extract data after confirming injection
--xpath <EXPR> XPath expression for extraction
OUTPUT
-o, --output <FILE> Save report
-f, --format <FMT> text or json
-v, --verbose Verbose output
गलत-संरचित XPath पेलोड भेजता है और Java, .NET, PHP, libxml2, Saxon, Xalan और W3C XQuery त्रुटि कोड से फ्रेमवर्क-विशिष्ट त्रुटि संकेतों का पता लगाता है।
xpath -u "http://target.local/item?id=1" -p id -t E
बॉडी समानता और आकार डेल्टा का उपयोग करके युग्मित TRUE/FALSE पेलोड प्रतिक्रियाओं की तुलना करता है। यह तब उपयोगी होता है जब परिणाम सीधे प्रदर्शित नहीं होते, लेकिन एप्लिकेशन का व्यवहार बदल जाता है।
xpath -u "http://target.local/search?q=test" -p q -t B
जब सामग्री-आधारित संकेत उपलब्ध नहीं होते हैं, तो मापने योग्य प्रतिक्रिया-समय अंतर उत्पन्न करने के लिए कम्प्यूटेशनल रूप से महंगे XPath एक्सप्रेशन का उपयोग करता है।
xpath -u "http://target.local/search?q=test" -p q -t T --time-sec 3
परीक्षण करता है कि क्या सेलेक्टर-जैसा पैरामीटर निरपेक्ष या सापेक्ष XPath पथों, जैसे //text(), ../../..//text(), //@*, और अनुक्रमित पथों के साथ यूनियन किया जा सकता है।
xpath -u "http://target.local/search?q=INVALID&field=name" -p field -t U -x
प्रेडिकेट-भंजक पेलोड, स्थिति-आधारित पेलोड, भूमिका-सबस्ट्रिंग पेलोड, बूलियन फ़ंक्शन और संदर्भ-जागरूक बायपास रूपों की जाँच करता है।
xpath -u "http://target.local/login" -m POST -d "username=*&password=test" -t P
जब -x सक्षम होता है, तो xpath सर्वोत्तम उपलब्ध निष्कर्षण मोड चुनता है:
| मोड | विवरण |
|---|---|
उदाहरण:
xpath -u "http://target.local/query?q=test" -p q -t A -x
कस्टम एक्सप्रेशन:
xpath -u "http://target.local/query?q=test" -p q -x --xpath "name(/*[1])"
src/
xpath.nim
core/
analyzer.nim
crawler.nim
extractor.nim
http.nim
payloads.nim
reporter.nim
scanner.nim
utils/
cli.nim
config.nim
logger.nim
MIT लाइसेंस। LICENSE देखें।
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण के लिए है। इसका उपयोग केवल उन्हीं सिस्टम पर करें जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है।
| दृश्य प्रमाणीकरण प्रतिक्रिया |
| सफल बायपास प्रतिक्रियाओं से नई पंक्तियों, लिंक्स, रीडायरेक्ट्स और प्रदर्शित मानों को पार्स करता है |
| दृश्य यूनियन पथ | यूनियन/नोड-चयन पेलोड से नए प्रदर्शित टेक्स्ट को निकालता है |
| ब्लाइंड निष्कर्षण | XML डेटा का अनुमान लगाने के लिए string-length(), substring(), name() और count() का उपयोग करता है |
| स्तर | फोकस |
|---|
1 | तेज़ क्लासिक पेलोड |
2 | सामान्य वास्तविक-दुनिया प्रेडिकेट भंजन |
3 | डिफ़ॉल्ट संतुलित स्कैन |
4 | एन्कोडेड, एंटिटी और पाथ-ब्रेकआउट पेलोड |
5 | अधिकतम कवरेज और असामान्य वेरिएंट |
| लक्ष्य | आउटपुट |
|---|
make linux | dist/xpath-linux-amd64 |
make windows | dist/xpath-windows-amd64.exe |
make test | Nim टेस्ट सुइट चलाता है |
make install | $(PREFIX)/bin/xpath पर स्थापित करता है |
make deb | dist/xpath_1.0.0_amd64.deb |
make clean | build/ और dist/ हटाता है |