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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
adminer_CVE-2021-43008 — Adminer की CVE-2021-43008 भेद्यता के लिए प्रदर्शन वातावरण : वास्तविक प्रभाव का निरीक्षण करें और शमन उपायों का परीक्षण करें। | Kitploit
उपकरण/GitHubGitHub/bamolitho/adminer_cve-2021-43008
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षाडेटाबेस सुरक्षालैब और अभ्यास
GitHubbamolitho/adminer_cve-2021-43008

adminer_CVE-2021-43008

Adminer की CVE-2021-43008 भेद्यता के लिए प्रदर्शन वातावरण : वास्तविक प्रभाव का निरीक्षण करें और शमन उपायों का परीक्षण करें।

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

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

सभी देखें →

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

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

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

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

CVE-2021-43008 — Adminer भेद्यता

दुर्भावनापूर्ण MySQL सर्वर के माध्यम से मनमानी फ़ाइल पढ़ना

1. Adminer क्या है?

Adminer एक वेब टूल (PHP) है जो MySQL, PostgreSQL, SQLite या SQL Server डेटाबेस को आसानी से प्रबंधित करने की अनुमति देता है। इसे आमतौर पर phpMyAdmin के हल्के विकल्प के रूप में तैनात किया जाता है।

प्रभावित संस्करण: Adminer ≤ 4.6.2


2. भेद्यता की प्रकृति क्या है?

2.1. एक्सेस कंट्रोल विफलता

Adminer किसी भी दूरस्थ MySQL सर्वर से कनेक्शन की अनुमति देता है। हालाँकि, MySQL सर्वर से कनेक्ट करते समय, क्लाइंट (यहाँ Adminer) स्वीकार करता है:

  • सर्वर से प्रारंभिक निर्देशों का एक सेट,
  • जिसमें LOAD DATA LOCAL INFILE कमांड शामिल है, जो सर्वर को क्लाइंट से स्थानीय फ़ाइल भेजने का अनुरोध करने की अनुमति देता है।

2.2. समस्या

Adminer कमजोर संस्करणों में MySQL सर्वर प्रतिक्रियाओं को सही ढंग से मान्य नहीं करता।

परिणाम: हमलावर द्वारा नियंत्रित MySQL सर्वर अनुरोध कर सकता है:

"Adminer को होस्ट करने वाली मशीन या कंटेनर पर इस स्थानीय फ़ाइल को पढ़ें और इसे मुझे भेजें।"

यह तंत्र MySQL पैकेट से संबंधित है: 0xFB | filename → स्थानीय फ़ाइल पढ़ने को ट्रिगर करता है।

संस्करण 4.6.2 कमजोर क्यों है?

Adminer 4.6.2 एक उपयोगकर्ता को बाहरी MySQL सर्वर निर्दिष्ट करने और स्वतंत्र रूप से उससे कनेक्ट करने की अनुमति देता था। हालाँकि, MySQL डिफ़ॉल्ट रूप से इसके उपयोग की अनुमति देता था:

  • LOAD DATA LOCAL INFILE
  • स्वचालित मोड में जब कुछ सर्वर किसी फ़ाइल का अनुरोध करते थे।

इसलिए: Adminer → दुर्भावनापूर्ण सर्वर से कनेक्ट होता है → दुर्भावनापूर्ण सर्वर एक फ़ाइल का अनुरोध करता है → Adminer इसे भेजता है।

यह भेद्यता का सार है।


3. शोषण की शर्तें

हमलावर को चाहिए:

  1. दुर्भावनापूर्ण MySQL सर्वर होस्ट करें (Rogue MySQL Server)।
  2. Adminer को अपने सर्वर से कनेक्ट करने के लिए प्रेरित करें:
    • कॉन्फ़िगरेशन त्रुटि के माध्यम से,
    • सार्वजनिक रूप से उजागर इंटरफ़ेस के माध्यम से,
    • उपयोगकर्ता की कार्रवाई के माध्यम से ("supply host" प्रकार का हमला)।
  3. दुर्भावनापूर्ण MySQL सर्वर एक LOAD DATA LOCAL INFILE पैकेट वापस भेजता है।
  4. Adminer एक स्थानीय फ़ाइल पढ़ता है।
  5. फ़ाइल हमलावर को वापस भेज दी जाती है।

स्थानीय फ़ाइल को बाहर निकालने के लिए किसी रूट पासवर्ड की आवश्यकता नहीं है: Adminer लक्ष्य सर्वर पर PHP एप्लिकेशन के रूप में कार्य करता है।


4. भेद्यता के परिणाम

4.1. गोपनीयता से समझौता

हमलावर कर सकता है:

  • /etc/passwd पढ़ें (Adminer को होस्ट करने वाली इकाई का: होस्ट मशीन या कंटेनर),
  • /etc/shadow पढ़ें (PHP उपयोगकर्ता की अनुमतियों के अनुसार),
  • कॉन्फ़िगरेशन फ़ाइलें प्राप्त करें,
  • MySQL कनेक्शन क्रेडेंशियल चुराएँ,
  • वेब उपयोगकर्ता के लिए सुलभ सभी जानकारी निकालें।

4.2. प्रभाव वृद्धि

चुराए गए MySQL क्रेडेंशियल (द्वितीयक चरण) के साथ, वह बाद में कर सकता है:

  • वास्तविक आंतरिक डेटाबेस से कनेक्ट हो सकता है,
  • डेटा पढ़ सकता है,
  • तालिकाओं में लिख सकता है,
  • दुर्भावनापूर्ण पेलोड इंजेक्ट कर सकता है।

5. व्यावहारिक प्रदर्शन (PoC) — लैब आर्किटेक्चर

PoC किसी भी जोखिम से बचने के लिए पृथक और कंटेनरीकृत वातावरण में किया जाता है।

5.1. लैब के घटक

  1. कमजोर Adminer (संस्करण 4.6.2) भूमिका: पीड़ित localhost:8080 पर स्थानीय रूप से उजागर
  2. वैध MySQL (वैकल्पिक) भूमिका: वास्तविक डेटाबेस का अनुकरण
  3. दुर्भावनापूर्ण MySQL सर्वर (Python) भूमिका: हमलावर यह Adminer को स्थानीय फ़ाइल पढ़ने के लिए मजबूर करने के लिए 0xFB filename पैकेट भेजता है।

5.2. फ़ोल्डर संरचना

adminer_CVE-2021-43008/
│
├── README.md
├── docker-compose.yml
│
└──rogue_mysql_server/
	├── rogue_mysql_server.py
	├── requirements.txt
	└── Dockerfile

6. PoC प्रक्रिया: भेद्यता कैसे प्रकट होती है?

6.1. लैब शुरू करें

docker compose build && docker compose up -d

6.2. Adminer से दुर्भावनापूर्ण सर्वर से कनेक्ट करें

http://localhost:8080 में:

  • सिस्टम: MySQL
  • सर्वर: rogue_mysql:33306
  • उपयोगकर्ता: कोई भी
  • पासवर्ड: कोई भी

6.3. स्वचालित प्रक्रिया

  1. Adminer हैंडशेक भेजता है।
  2. दुर्भावनापूर्ण MySQL LOAD DATA LOCAL INFILE '/etc/passwd' वापस भेजता है।
  3. Adminer /etc/passwd पढ़ता है।
  4. Adminer इसकी सामग्री दुर्भावनापूर्ण सर्वर को भेजता है।
  5. दुर्भावनापूर्ण सर्वर टेक्स्ट को stolen_file.txt में संग्रहीत करता है।

6.4. देखा गया परिणाम

दुर्भावनापूर्ण सर्वर के लॉग देखने के लिए निम्न कमांड का उपयोग करें:

docker logs -f rogue_mysql

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

2025-11-27 16:59:54,248:INFO:Serving on ('0.0.0.0', 33306)
2025-11-27 17:02:55,213:INFO:Conn from: ('172.18.0.3', 37200)
2025-11-27 17:02:55,214:INFO:Last packet
2025-11-27 17:02:55,214:INFO:Query
2025-11-27 17:02:55,214:INFO:Requesting file: /etc/shadow
2025-11-27 17:02:55,215:INFO:-- Received file data
2025-11-27 17:02:55,215:INFO:Result length: 1 bytes
2025-11-27 17:02:55,215:INFO:Last packet
2025-11-27 17:02:55,216:INFO:Query
2025-11-27 17:02:55,216:INFO:Requesting file: /etc/passwd
2025-11-27 17:02:55,216:INFO:-- Received file data
2025-11-27 17:02:55,217:INFO:Result length: 920 bytes
2025-11-27 17:02:55,217:INFO:File content received: 919 bytes
2025-11-27 17:02:55,217:INFO:File saved to stolen_file.txt

stolen_file.txt फ़ाइल की सामग्री देखें:

docker exec -it rogue_mysql sh

कंटेनर के अंदर एक बार, आप stolen_file.txt सहित फ़ाइलों की सामग्री देख सकते हैं

# ls
mysql.log  requirements.txt  rogue_mysql_server.py  stolen_file.txt
# cat stolen_file.txt

परिणाम:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/bin/false

यह परिणाम स्पष्ट रूप से भेद्यता को प्रदर्शित करता है।

7. शमन उपाय

A. Adminer अपडेट करें (यह अकेला पर्याप्त है)

सबसे विश्वसनीय समाधान: Adminer ≥ 4.6.3 पर जाएँ

बाद के संस्करण नेटवर्क व्यवहार को ठीक करते हैं।

निम्नलिखित संस्करणों में क्या ठीक किया गया

Adminer 4.7.x से शुरू करके, कई सुरक्षाएँ शुरू की गई हैं:

Adminer अब डिफ़ॉल्ट रूप से LOAD DATA LOCAL INFILE को प्रतिबंधित करता है

अर्थात:

  • पूरी तरह से अक्षम
  • या केवल तब सक्षम जब उपयोगकर्ता द्वारा स्पष्ट रूप से अनुमति दी गई हो

→ परिणाम: आपका दुर्भावनापूर्ण MySQL अब फ़ाइलें नहीं निकाल सकता।

Adminer सर्वर को भेजने से पहले क्लाइंट क्रियाओं को फ़िल्टर करता है

यह बाहरी कनेक्शन को खतरनाक कार्यों का उपयोग करने से रोकता है।

अतिरिक्त इनपुट सत्यापन तंत्र

नए संस्करण जाँचते हैं:

  • क्या लक्ष्य सर्वर अपेक्षित है
  • क्या क्रिया खतरनाक नहीं है
  • क्या क्वेरी वैध उपयोगकर्ता क्रिया से मेल खाती है

B. बाहरी कनेक्शन अक्षम करें

Adminer को केवल आंतरिक होस्ट तक सीमित करें:

  • फ़ायरवॉल के माध्यम से (OUTPUT + DOCKER NETWORKS),
  • फ़िल्टर किए गए रिवर्स प्रॉक्सी के माध्यम से,
  • सख्ती से स्थानीयकृत नेटवर्क कॉन्फ़िगरेशन के माध्यम से।

उत्पादन में Adminer को हमेशा आंतरिक MySQL की ओर इंगित करना चाहिए।


C. MySQL पक्ष पर LOCAL INFILE अक्षम करें

वैध MySQL क्लाइंट के माध्यम से चोरी को रोकता है:

[mysqld]
local_infile=0

या:

SET GLOBAL local_infile=0;

D. Adminer को कभी भी सार्वजनिक रूप से उजागर न करें

Adminer इंटरनेट पर सुलभ नहीं होना चाहिए।

उत्पादन में:

  • VPN के माध्यम से सीमित पहुँच,
  • SSO या मजबूत प्रमाणीकरण,
  • स्वचालित समाप्ति।

E. उपयोग के बाद Adminer हटा दें

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