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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
phpmyadmin-importldi — phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - ImportLdi TERMINATED BY शेष | Kitploit
उपकरण/GitHubGitHub/abraxas/phpmyadmin-importldi
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/phpmyadmin-importldi

phpmyadmin-importldi

phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - ImportLdi TERMINATED BY शेष

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-importldi

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-importldi

राइट-अप: https://abraxaslabs.tech/research/phpmyadmin-importldi

phpmyadmin-importldi

वर्ग: SQLi पहुँच: रिमोट

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

ImportLdi.php POST के ldi_terminated और ldi_new_line से FIELDS/LINES TERMINATED BY के साथ LOAD DATA बनाता है। इन दोनों स्ट्रिंग्स को सिंगल-कोटेड SQL में जोड़ा जाता है। ldi_enclosed और ldi_escaped escapeString से होकर गुज़रते हैं। phpMyAdmin /import पर PMA_ENABLE_LDI सेट करता है ताकि MYSQLI_OPT_LOCAL_INFILE चालू रहे।

एक साइन-इन किया हुआ उपयोगकर्ता ldi_terminated में एक कोट के साथ format=ldi POST करता है। जारी किया गया LOAD DATA TERMINATED BY के अंदर रॉ POST को शामिल करता है। यह उपयोगकर्ता कनेक्शन में SQL इंजेक्शन है, कंट्रोल उपयोगकर्ता में नहीं।

IDअभी तक कोई CVE नहीं
वर्गSQLi
पहुँचरिमोट (प्रमाणित कुकी लॉगिन; टेबल इम्पोर्ट, फ़ॉर्मेट ldi)
CWECWE-89
CVSSमध्यम: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
उत्पादphpMyAdmin
प्रभावित5.2.3 टैग RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
प्रमाणीकरणप्रमाणित कुकी लॉगिन। टेबल इम्पोर्ट, फ़ॉर्मेट ldi
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

एक हमलावर क्या कर सकता है

एक साइन-इन किया हुआ phpMyAdmin उपयोगकर्ता जो टेबल इम्पोर्ट खोल सकता है, अपने MySQL कनेक्शन पर LOAD DATA ... TERMINATED BY में SQL इंजेक्ट कर सकता है।

विशेषाधिकारविधि / सिंकरेकॉन / अखंडता / उपलब्धतालैब-प्रमाणित या अनुमानित
FIELDS TERMINATED BY लिटरल को तोड़नाPOST index.php?route=/import format=ldi ldi_terminated में एक कोट के साथPMA द्वारा बनाए गए स्टेटमेंट की अखंडतालैब-प्रमाणित। HTML SQL बॉक्स: TERMINATED BY '',PMA-IMPORTLDI-WITNESS'
ENCLOSED BY को इन-बैंड रखनावही POST, ldi_enclosed में कोटनेगेटिव कंट्रोललैब-प्रमाणित। ENCLOSED BY एस्केप किया गया है
उपयोगकर्ता कनेक्शन पर अतिरिक्त SQL (INTO OUTFILE / स्टैक्ड यदि अनुमति हो)स्ट्रिंग बंद होने के बाद वही सिंकउपयोगकर्ता कनेक्शन की अखंडताअनुमानित। लैब टूटे हुए डेलिमीटर पर रुकती है। डिफ़ॉल्ट mysqli::query सिंगल-स्टेटमेंट है
MySQL-साइड फ़ाइल पढ़ना/लिखनावही LOAD DATA यदि खाते के पास FILE या वेब सर्वर तक LOCAL INFILE हैउन फ़ाइलों की अखंडता जिन्हें mysqld छू सकता हैअनुमानित। यहाँ अनुदत्त नहीं। दावा नहीं किया गया

इस लैब पर बंद: अनप्रमाणित पहुँच, कंट्रोल-उपयोगकर्ता / pmadb, OS include LFI, और FILE-गेटेड पढ़ना/लिखना। साइन-इन किए हुए उपयोगकर्ता के पास पहले से ही एक SQL बॉक्स है; यह बचा हुआ हिस्सा उस स्टेटमेंट के अंदर का अनएस्केप्ड डेलिमीटर है जो PMA उनके लिए बनाता है।

वही पिन: WebAuthn CustomServer leftover।

मैंने इसे कैसे खोजा

मैंने phpMyAdmin RELEASE_5_2_3 को पिन किया। जो इम्पोर्ट प्लगइन हाथ से LOAD DATA बनाते हैं, वे एक कोटिंग ऑडिट हैं। चार डेलिमीटर फ़ील्ड में से दो एस्केप किए गए थे। दो नहीं थे:

$sql .= ' FIELDS TERMINATED BY \'' . $ldi_terminated . '\'';
...
$sql .= ' LINES TERMINATED BY \'' . $ldi_new_line . '\'';

ldi_enclosed / ldi_escaped $dbi->escapeString को कॉल करते हैं। Common.php /import + format=ldi पर PMA_ENABLE_LDI सेट करता है। रूट्स GET|POST /import और GET|POST /table/import।

पहले से दर्ज गलत मोड़: FILE ग्रांट के बिना LFI का दावा करना; SQL बॉक्स को ही फाइंडिंग मान लेना (जो बचा है वह अनएस्केप्ड डेलीमीटर है जिसे PMA जोड़ता है); control-user / pmadb का दावा करना; एक रिवर्स शेल। नाटक।

लैब

python3 phpmyadmin-importldi-Abraxas-Labs.py
# or: cd lab && ./run.sh

केवल http://127.0.0.1:19290 को लक्षित करें। इमेज phpmyadmin:5.2.3 और mysql:8.0। Compose प्रोजेक्ट phpmyadmin-importldi। रन के बाद स्टैक टियर डाउन हो जाता है।

कुकी लॉगिन। format=ldi और ldi_terminated में एक कोट के साथ /import पर POST करें। जारी किया गया LOAD DATA LOCAL INFILE ... INTO TABLE \ldi_target` FIELDS TERMINATED BY '',PMA-IMPORTLDI-WITNESS'। ldi_enclosedमें वही कोट एक escapedENCLOSED BYके रूप में संग्रहीत हुआ। 5.2.3 इमेज पर पिन किए गए सोर्स में अभी भी'.$ldi_terminated.'और$dbi->escapeString($ldi_enclosed)` है।

SUCCESS phpmyadmin-importldi pin=RELEASE_5_2_3 how=live TERMINATED-BY-raw ENCLOSED-escaped PMA-IMPORTLDI-WITNESS

समाधान

ldi_terminated और ldi_new_line पर escapeString, जैसे enclosed और escaped में होता है। skip_queries का Int-cast।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/Plugins/Import/ImportLdi.php
  • वही पिन: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE। केवल लूपबैक लैब। कोई वारंटी नहीं।

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