MySQL LOAD_FILE() और INTO OUTFILE() Sql इंजेक्शन

Jan 19 2023
इस लेख में, हम MySQL LOAD_FILE () फ़ंक्शन और INTO OUTFILE () फ़ंक्शन और Sql इंजेक्शन पर चर्चा करेंगे। MySQL LOAD_FILE() और INTO OUTFILE() फ़ंक्शंस प्रदान करता है जिसका उपयोग उस सर्वर के फ़ाइल सिस्टम पर फ़ाइलों को पढ़ने या लिखने के लिए किया जा सकता है जहाँ MySQL डेटाबेस चल रहा है।
अनस्प्लैश पर सारा बख्शी द्वारा फोटो

इस लेख में, हम MySQL LOAD_FILE () फ़ंक्शन और INTO OUTFILE () फ़ंक्शन और Sql इंजेक्शन पर चर्चा करेंगे। MySQL LOAD_FILE() और INTO OUTFILE() फ़ंक्शंस प्रदान करता है जिसका उपयोग उस सर्वर के फ़ाइल सिस्टम पर फ़ाइलों को पढ़ने या लिखने के लिए किया जा सकता है जहाँ MySQL डेटाबेस चल रहा है। यदि उपयोगकर्ता इनपुट को ठीक से साफ नहीं किया जाता है, तो ये कार्य SQL इंजेक्शन हमलों के लिए असुरक्षित हो सकते हैं।

एक हमलावर सर्वर पर अनधिकृत फ़ाइलों तक पहुँचने या लिखने के लिए LOAD_FILE() या INTO OUTFILE() फ़ंक्शन को दिए गए फ़ाइल पथ को संशोधित करने के लिए SQL इंजेक्शन का उपयोग कर सकता है। उदाहरण के लिए, एक हमलावर SQL इंजेक्शन का उपयोग सर्वर पर संवेदनशील फ़ाइलों को पढ़ने या सर्वर पर दुर्भावनापूर्ण कोड लिखने के लिए कर सकता है, जो संभावित रूप से सिस्टम के आगे समझौता करने के लिए अग्रणी है।

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

<?php
$file_path = $_GET['file'];
$sql = "SELECT * FROM users WHERE profile_picture = LOAD_FILE('" . $file_path . "')";
$result = mysqli_query($connection, $sql);
?>

असुरक्षित PHP कोड का एक नमूना जो MySQL INTO OUTFILE() फ़ंक्शन का उपयोग करता है:

<?php
$file_path = $_POST['file'];
$content = $_POST['content'];
$sql = "SELECT '".$content."' INTO OUTFILE '" . $file_path . "'";
$result = mysqli_query($connection, $sql);
?>

कर्मिट

इस पोस्ट में हमने MySQL LOAD_FILE() function और INTO OUTFILE() function और Sql Injection के बारे में चर्चा की है, अगली पोस्ट में मिलते हैं, ध्यान रखना।