mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
30 lines
6.5 KiB
Markdown
30 lines
6.5 KiB
Markdown
# MySQL फ़ाइल प्रिव को SSRF/RCE
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
**यह [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/) से MySQL/MariaDB/Percona तकनीकों का सारांश है।**
|
|
|
|
### सर्वर-साइड अनुरोध धोखाधड़ी (SSRF) SQL फ़ंक्शंस के माध्यम से
|
|
|
|
SQL आउट ऑफ बैंड डेटा एक्सफिल्ट्रेशन की खोज में, `LOAD_FILE()` फ़ंक्शन सामान्यतः नेटवर्क अनुरोध शुरू करने के लिए उपयोग किया जाता है। हालाँकि, यह फ़ंक्शन उस ऑपरेटिंग सिस्टम द्वारा सीमित है जिस पर यह कार्य करता है और डेटाबेस की स्टार्टअप कॉन्फ़िगरेशन द्वारा।
|
|
|
|
यदि `secure_file_priv` वैश्विक चर सेट नहीं है, तो यह `/var/lib/mysql-files/` पर डिफ़ॉल्ट होता है, जिससे फ़ाइलों तक पहुँच इस निर्देशिका तक सीमित होती है जब तक कि इसे खाली स्ट्रिंग (`""`) पर सेट नहीं किया जाता। इस समायोजन के लिए डेटाबेस की कॉन्फ़िगरेशन फ़ाइल या स्टार्टअप पैरामीटर में संशोधन की आवश्यकता होती है।
|
|
|
|
यदि `secure_file_priv` अक्षम है (`""`), और आवश्यक फ़ाइल और `file_priv` अनुमतियाँ दी गई हैं, तो निर्दिष्ट निर्देशिका के बाहर फ़ाइलें पढ़ी जा सकती हैं। फिर भी, इन फ़ंक्शंस के नेटवर्क कॉल करने की क्षमता ऑपरेटिंग सिस्टम पर अत्यधिक निर्भर करती है। विंडोज़ सिस्टम पर, UNC पथों के लिए नेटवर्क कॉल संभव हैं क्योंकि ऑपरेटिंग सिस्टम UNC नामकरण मानकों को समझता है, जो NTLMv2 हैश के एक्सफिल्ट्रेशन की संभावना को जन्म देता है।
|
|
|
|
यह SSRF विधि TCP पोर्ट 445 तक सीमित है और पोर्ट नंबर में संशोधन की अनुमति नहीं देती, हालाँकि इसका उपयोग पूर्ण पढ़ने की अनुमतियों के साथ शेयरों तक पहुँचने के लिए किया जा सकता है और, पूर्व के शोध में प्रदर्शित किया गया है, आगे के शोषण के लिए हैश चुराने के लिए।
|
|
|
|
### उपयोगकर्ता परिभाषित फ़ंक्शंस (UDF) के माध्यम से रिमोट कोड निष्पादन (RCE)
|
|
|
|
MySQL डेटाबेस बाहरी पुस्तकालय फ़ाइलों से उपयोगकर्ता परिभाषित फ़ंक्शंस (UDF) के उपयोग की पेशकश करते हैं। यदि ये पुस्तकालय विशिष्ट निर्देशिकाओं के भीतर या सिस्टम के `$PATH` में उपलब्ध हैं, तो इन्हें MySQL के भीतर से बुलाया जा सकता है।
|
|
|
|
यह तकनीक UDF के माध्यम से नेटवर्क/HTTP अनुरोधों के निष्पादन की अनुमति देती है, बशर्ते कई शर्तें पूरी हों, जिसमें `@@plugin_dir` पर लिखने की अनुमति, `file_priv` को `Y` पर सेट करना, और `secure_file_priv` को अक्षम करना शामिल है।
|
|
|
|
उदाहरण के लिए, `lib_mysqludf_sys` पुस्तकालय या अन्य UDF पुस्तकालय जो HTTP अनुरोधों को सक्षम करते हैं, SSRF करने के लिए लोड किए जा सकते हैं। पुस्तकालयों को सर्वर पर स्थानांतरित किया जाना चाहिए, जिसे पुस्तकालय की सामग्री को हेक्स या बेस64 एन्कोडिंग के माध्यम से प्राप्त करके और फिर इसे उचित निर्देशिका में लिखकर किया जा सकता है।
|
|
|
|
यदि `@@plugin_dir` लिखने योग्य नहीं है, तो प्रक्रिया भिन्न होती है, विशेष रूप से `v5.0.67` से ऊपर के MySQL संस्करणों के लिए। ऐसे मामलों में, वैकल्पिक पथों का उपयोग किया जाना चाहिए जो लिखने योग्य हों।
|
|
|
|
इन प्रक्रियाओं का स्वचालन SQLMap जैसे उपकरणों द्वारा किया जा सकता है, जो UDF इंजेक्शन का समर्थन करते हैं, और अंधे SQL इंजेक्शन के लिए, आउटपुट रीडायरेक्शन या DNS अनुरोध स्मगलिंग तकनीकों का उपयोग किया जा सकता है।
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|