Sploitus

Exploit for Drupal

kitploit · 2026-08-25

Exploit Code

MARKDOWN42 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SUMITPATHANIA03-DRUPAL-CVE-2019-6340
# Исследование

CVE 2019-6340

root@kitploit:~
    
    
    Сайт, на котором включен модуль RESTful API Services ядра Drupal 8 ,позволяет пользователю отправлять GET, PATCH или POST запросы на сервер. 
    
    (GET-запроса достаточно для запуска уязвимости выполнения кода ,даже если метод PATCH отключен)
    
    На сайте включен любой другой модуль веб-сервисов ,например JSON-API в Drupal 8 или REST services в Drupal 7.
    

ТРЕБОВАНИЯ ДЛЯ POC

DOCKER.IO

DRUPAL 8.6.9

SQL 5.7

docker run -d --name mysqldb -e MYSQL_ROOT_PASSWORD=password mysql:5.7

docker run -d --name drupal --link mysqldb -p 8090:80 -e MY_SQL_USER:root -e MY_SQL_PASSWORD:password drupal:8.6.9

команда запуска эксплойта

python3 exp.py http://Ip_of_drupal_container:port_assigned(if)// "command_to_execuite"

пример:- python3 exp.py http://127.0.0.1:8090/ "hostname -I"

АНАЛИЗ ЭКСПЛОЙТА

Guzzle — это PHP HTTP-клиент , упрощающий отправку HTTP-запросов и интеграцию с веб-сервисами. Он используется в эксплойте для отправки вредоносных запросов на сайты на Drupal. Если проанализировать скрипт Guzzle внутри кода эксплойта (exp.py) , можно обнаружить, что строка "command" заменяется командой , переданной во время выполнения (например hostname -I).

![exp](https://assets.kitploit.com/production/public/readmes/20903/93d1ac1ea8f9d2499aaa589b46626dbc489271851f0d0d0887a1e7694759cda4.png)

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

![drupal](https://assets.kitploit.com/production/public/readmes/20903/943e0e4e6cd92dcd1342d8ac5a12ff9d895be617b427e9680abe48c8a4aa8ed4.png)