LFI के कारण हैकिंग डेटाबेस

यह शायद कोई रहस्य नहीं है कि बुरा कोड दुखद परिणाम दे सकता है। यह साइटों के लिए विशेष रूप से सच है। हाल ही में, PHP- प्रोग्रामर क्या गलतियाँ करते हैं और इस से क्या कमज़ोरियाँ आती हैं, इस बारे में एक लेख पढ़कर मुझे स्थानीय फ़ाइल समावेशन का पता चला। मुझे इस भेद्यता में बहुत दिलचस्पी थी और मैंने कुछ को तोड़ने और अधिक विस्तार से अध्ययन करने का फैसला किया।

लंबे समय तक खोज नहीं करने के बाद, मंचों में से एक को जर्मन वेबसाइट http://www.gamecaptain.de का लिंक मिला। पता बार में दिलचस्प मापदंडों को तुरंत देखा गया

छवि

आइए इससे कुछ निकालने की कोशिश करते हैं। सबसे पहले, स्रोत कोड index.php प्राप्त करें

छवि

हमने रूपांतरण फ़िल्टर का उपयोग किया। आंदोलनों की एक जोड़ी और ...

छवि

... हमारे साथ फ़ाइल का स्रोत कोड!

हम इस फ़ाइल में हमारे पास क्या विश्लेषण करेंगे। तुरंत मैंने एक साइट की तलाश शुरू की जिसमें जर्मन प्रोग्रामर ने गलती की। खोज अल्पकालिक थे


if(!isset($file)) {
if(isset($_POST["file"])) {
$file = $_POST["file"];
} else if (isset($_GET["file"])) {
$file = $_GET["file"];
} else {
if(!isset($sitearea) || $sitearea == "Magazin") {
$file="aktuell.php";
} else {
$file="aktuell_downloads.php";
}
}
}


फ़ाइलों को जोड़ने के लिए आपको किस प्रकार की आवश्यकता नहीं है, इसका एक और महत्वपूर्ण उदाहरण।

फिर, ज़ाहिर है, मैंने एक डेटाबेस कनेक्शन के साथ एक फ़ाइल की तलाश शुरू कर दी। जाहिर है कि यह लाइन है

require("includes/connect.inc.php");

हम वही ऑपरेशन करते हैं, जो हमने index.php के लिए किया था, इसमें शामिल हैं / connect.inc.php

छवि

प्राप्त बेस -64 चरित्र सेट को डीकोड करें और डेटाबेस से कनेक्ट करने के लिए जानकारी प्राप्त करें

छवि

कनेक्ट करें ...

छवि

वह सब है!

Source: https://habr.com/ru/post/In144455/


All Articles