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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2018-1058 | Kitploit
उपकरण/GitHubGitHub/ccchme/cve-2018-1058
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाडेटाबेस सुरक्षालैब और अभ्यास
GitHubccchme/cve-2018-1058

CVE-2018-1058

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

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

सभी देखें →

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

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

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

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

CVE-2018-1058 — PostgreSQL सर्च पथ प्रदर्शन

यह रिपॉजिटरी अंतिम रिपोर्ट और निम्नलिखित के लिए पुनरुत्पादन कलाकृतियों को शामिल करती है:

CVE-2018-1058: अनियंत्रित सर्च पथ के माध्यम से PostgreSQL में विशेषाधिकार वृद्धि

उद्देश्य एक सुरक्षित स्थानीय Docker वातावरण का उपयोग करके CVE-2018-1058 के पीछे के सर्च-पथ विश्वास विफलता को प्रदर्शित करना है।

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


1. सामग्री

root@kitploit:~
.
├── report.pdf
├── docker-compose.yml
├── README.md
└── scripts/
    ├── init.sql
    ├── init_safe.sql
    ├── exploit.sql
    ├── victim_query.sql
    ├── verify_qualify.sql
    └── fix.sql

अंतिम रिपोर्ट report.pdf है। इसमें लिखित विश्लेषण और नीचे अपेक्षित आउटपुट के अनुरूप स्क्रीनशॉट शामिल हैं।

किसी Dockerfile की आवश्यकता नहीं है। प्रोजेक्ट आधिकारिक postgres इमेज का उपयोग करता है।

स्क्रीनशॉट सीधे report.pdf में एम्बेडेड हैं, इसलिए उन्हें अलग इमेज फ़ाइलों के रूप में प्रदान नहीं किया गया है।

2. आवश्यकताएँ

इंस्टॉल करें:

  • Docker
  • Docker Compose
  • psql क्लाइंट, वैकल्पिक लेकिन अनुशंसित

डेमो दो PostgreSQL कंटेनरों का उपयोग करता है:

सुनिश्चित करें कि पोर्ट 15432 और 15433 खाली हैं।

त्वरित चलाने का अवलोकन

अपेक्षित निष्पादन क्रम है:

  1. कमजोर PostgreSQL 10.2 सेवा शुरू करें।
  2. attacker के रूप में exploit.sql चलाएँ।
  3. victim के रूप में victim_query.sql चलाएँ और CVE-2018-1058 DEMO: उपसर्ग देखें।
  4. victim के रूप में verify_qualify.sql चलाएँ और सामान्य लोअरकेस आउटपुट देखें।
  5. postgres के रूप में fix.sql चलाएँ।
  6. victim_query.sql फिर से चलाएँ और सामान्य लोअरकेस आउटपुट देखें।
  7. सुदृढ़ PostgreSQL 10.3 सेवा शुरू करें।
  8. पोर्ट 15433 पर exploit.sql फिर से चलाएँ और permission denied for schema public संदेश देखें।

3. कमजोर वातावरण शुरू करें

root@kitploit:~
docker compose up -d pg_vulnerable
docker compose ps

अपेक्षित परिणाम: सेवा pg_vulnerable चल रही होनी चाहिए और पोर्ट 15432 पर मैप होनी चाहिए।

PostgreSQL संस्करण जाँचें:

root@kitploit:~
docker exec -it cve1058_pg_vulnerable psql -U postgres -d demo_cve1058 -c "SELECT version();"

अपेक्षित परिणाम: PostgreSQL 10.2।

4. डेटाबेस भूमिकाओं का निरीक्षण करें

root@kitploit:~
docker exec -it cve1058_pg_vulnerable psql -U postgres -d demo_cve1058 -c "\du"

अपेक्षित भूमिकाएँ:

  • postgres
  • attacker
  • victim

हमलावर PostgreSQL सुपरयूज़र नहीं है।

5. एक्सप्लॉइट चलाएँ

हमलावर स्क्रिप्ट चलाएँ:

root@kitploit:~
PGPASSWORD='AttackerPw!ChangeMe' \
psql -h 127.0.0.1 -p 15432 -U attacker -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/exploit.sql

अपेक्षित आउटपुट:

root@kitploit:~
CREATE TABLE
GRANT
GRANT
CREATE FUNCTION

यह बनाता है:

  • एक हानिरहित public.exploit_log तालिका;
  • एक नकली public.lower(varchar) फ़ंक्शन।

6. पीड़ित के रूप में कमजोर व्यवहार को ट्रिगर करें

root@kitploit:~
PGPASSWORD='VictimPw!ChangeMe' \
psql -h 127.0.0.1 -p 15432 -U victim -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/victim_query.sql

अपेक्षित आउटपुट:

root@kitploit:~
CVE-2018-1058 DEMO: Alice Demo
CVE-2018-1058 DEMO: Bob Demo

यह दर्शाता है कि पीड़ित की सामान्य क्वेरी ने lower(...) को हमलावर-नियंत्रित फ़ंक्शन पर हल कर दिया।

7. साइड इफेक्ट की पुष्टि करें

root@kitploit:~
PGPASSWORD='AttackerPw!ChangeMe' \
psql -h 127.0.0.1 -p 15432 -U attacker -d demo_cve1058 \
-c "TABLE public.exploit_log;"

अपेक्षित परिणाम: public.exploit_log में कम से कम दो पंक्तियाँ, पीड़ित क्वेरी द्वारा संसाधित प्रत्येक पंक्ति के लिए एक।

8. रक्षात्मक योग्यता दिखाएँ

root@kitploit:~
PGPASSWORD='VictimPw!ChangeMe' \
psql -h 127.0.0.1 -p 15432 -U victim -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/verify_qualify.sql

अपेक्षित आउटपुट:

root@kitploit:~
alice demo
bob demo

यह काम करता है क्योंकि pg_catalog.lower(...) PostgreSQL को बिल्ट-इन फ़ंक्शन का उपयोग करने के लिए मजबूर करता है।

9. कमजोर कंटेनर पर फिक्स लागू करें

root@kitploit:~
PGPASSWORD='postgres' \
psql -h 127.0.0.1 -p 15432 -U postgres -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/fix.sql

अपेक्षित आउटपुट में शामिल हो सकता है:

root@kitploit:~
DROP FUNCTION
DROP TABLE
REVOKE
REVOKE

फिर पीड़ित क्वेरी फिर से चलाएँ:

root@kitploit:~
PGPASSWORD='VictimPw!ChangeMe' \
psql -h 127.0.0.1 -p 15432 -U victim -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/victim_query.sql

अपेक्षित आउटपुट:

root@kitploit:~
alice demo
bob demo

हमलावर-नियंत्रित फ़ंक्शन चला गया है, और क्वेरी सामान्य लोअरकेस स्ट्रिंग लौटाती है।

10. सुदृढ़ वातावरण शुरू करें

root@kitploit:~
docker compose up -d pg_fixed
docker compose ps

संस्करण जाँचें:

root@kitploit:~
docker exec -it cve1058_pg_fixed psql -U postgres -d demo_cve1058 -c "SELECT version();"

अपेक्षित परिणाम: PostgreSQL 10.3।

11. सत्यापित करें कि सुदृढ़ वातावरण पर एक्सप्लॉइट विफल हो जाता है

root@kitploit:~
PGPASSWORD='AttackerPw!ChangeMe' \
psql -h 127.0.0.1 -p 15433 -U attacker -d demo_cve1058 \
-v ON_ERROR_STOP=1 -f scripts/exploit.sql

अपेक्षित आउटपुट:

root@kitploit:~
ERROR: permission denied for schema public

इसका मतलब है कि हमलावर public में नकली फ़ंक्शन नहीं बना सकता, इसलिए नाम समाधान से पहले हमला श्रृंखला रुक जाती है।

12. सफाई

कंटेनरों को रोकने के लिए:

root@kitploit:~
docker compose down

वॉल्यूम हटाने और प्रोजेक्ट को पूरी तरह रीसेट करने के लिए:

root@kitploit:~
docker compose down -v

13. नोट्स

यह डेमो जानबूझकर हानिरहित है। यह डेटा चोरी नहीं करता, फ़ाइलों तक पहुँच नहीं बनाता, या ऑपरेटिंग-सिस्टम कमांड निष्पादित नहीं करता।

एक्सप्लॉइट एक दृश्य स्ट्रिंग उपसर्ग और एक लॉग तालिका का उपयोग करता है ताकि साबित हो सके कि PostgreSQL ने एक अयोग्य फ़ंक्शन नाम को हमलावर-नियंत्रित वस्तु पर हल किया।

आधिकारिक CVE pg_dump और अन्य क्लाइंट एप्लिकेशन से संबंधित है। यह रिपॉजिटरी एक सुरक्षित और पुनरुत्पादनीय कक्षा सेटिंग में उसी सर्च-पथ विश्वास विफलता को प्रदर्शित करती है।

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

यदि कोई पोर्ट पहले से उपयोग में है, तो किसी भी स्थानीय PostgreSQL सेवा को रोकें या docker-compose.yml में होस्ट पोर्ट बदलें।

यदि आउटपुट अपेक्षित परिणामों से मेल नहीं खाता है, तो निम्नलिखित से वातावरण रीसेट करें:

root@kitploit:~
docker compose down -v
docker compose up -d pg_vulnerable

यदि psql स्थानीय रूप से स्थापित नहीं है, तो संस्करण और भूमिका निरीक्षण कमांड अभी भी कंटेनरों के अंदर docker exec के साथ चलाए जा सकते हैं।

यदि pg_vulnerable पर एक्सप्लॉइट विफल होता है, तो सुनिश्चित करें कि डेटाबेस रीसेट किया गया था और scripts/exploit.sql को scripts/fix.sql से पहले निष्पादित किया जा रहा है।

15. संदर्भ

  • PostgreSQL CVE-2018-1058 सलाह: https://www.postgresql.org/support/security/CVE-2018-1058/
  • PostgreSQL विकी, CVE-2018-1058 के लिए एक मार्गदर्शिका: https://wiki.postgresql.org/wiki/A_Guide_to_CVE-2018-1058:_Protect_Your_Search_Path
  • PostgreSQL 10.3 रिलीज़ नोट्स: https://www.postgresql.org/docs/release/10.3/
  • NVD CVE-2018-1058: https://nvd.nist.gov/vuln/detail/CVE-2018-1058
  • MITRE CVE-2018-1058: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1058
टूल डाउनलोड करें
सेवासंस्करणकंटेनर नामहोस्ट पोर्टउद्देश्य
pg_vulnerablePostgreSQL 10.2cve1058_pg_vulnerable15432कमजोर प्रदर्शन
pg_fixedPostgreSQL 10.3cve1058_pg_fixed15433पैच/सुदृढ़ तुलना