
Это скрипт на Python3, который демонстрирует эксплойт для уязвимости Blind SQL Injection в WebERP версии 4.15.
Это скрипт на Python3, демонстрирующий эксплуатацию уязвимости слепой SQL-инъекции в WebERP версии 4.15, первоначально обнаруженной Семёном Александровичем Лыхиным 10 июня 2019 года. Оригинальный эксплойт можно найти здесь, а дополнительные сведения о системе WebERP можно получить на официальном сайте WebERP. Обзор
Уязвимость заключается в том, как WebERP обрабатывает запросы, полученные в кодировке base64 и передаваемые функции unserialize(). В частности, скрипт может десериализовать эти запросы в массив без какой-либо очистки. После этого каждый элемент этого массива попадает непосредственно в SQL-запрос без дополнительных проверок, что делает систему подверженной атакам SQL-инъекций. Работа скрипта
Этот скрипт работает, эксплуатируя вышеуказанную уязвимость, следующим образом:
Вредоносный запрос подготавливается с помощью функции generatePayload(). Эта функция создает сериализованный массив с пейлоадами SQL-инъекций и кодирует его в формат base64.
Скрипт входит в систему WebERP, используя предоставленные учетные данные и функцию getCookies(), которая получает сессионные cookie.
В систему добавляется новый поставщик с помощью функции addSupplierID(). Имя поставщика позже используется в качестве маркера для идентификации ответа системы.
Эксплойт выполняется с помощью функции runExploit(). Она отправляет POST-запрос на страницу "Payments.php" системы WebERP. Эта функция встраивает закодированный в base64 пейлоад в качестве параметра в POST-данные.
Измеряется время ответа на запрос. Значительно более длительное время ответа указывает на то, что SQL-запрос был задержан из-за внедренной команды sleep(), что подтверждает наличие уязвимости SQL-инъекции.
python3 exploit.py <target> <path> <login> <password> <order>
Замените <target>, <path>, <login>, <password> и <order> на IP-адрес цели, путь к цели, логин пользователя, пароль пользователя и заказ компании соответственно.
Пример:
python exploit.py 192.168.1.1 'WEBerp/' admin weberp 1