
wp2shell — WordPress Core 事前認証RCEチェーン PoC(CVE-2026-63030 および CVE-2026-60137 用)
私の作業を評価していただける場合、USDT(TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN でプロジェクトのサポートを検討してください。
wp2shell は、WordPress Core の事前認証脆弱性チェーンを組み合わせたセキュリティ研究用の概念実証(Proof-of-Concept)です:
WP_Query SQL インジェクションこのチェーンは、これらの脆弱性を組み合わせることで、未認証の REST API リクエストから SQL インジェクション、権限昇格、管理者アカウント作成、最終的には認証済みリモートコード実行へと移行できることを示しています。
[!WARNING]
許可されたセキュリティ研究のみ
このプロジェクトは以下を目的としています:
- 脆弱性研究
- 防御的検証
- 許可されたペネトレーションテスト
- セキュリティラボ
- CTF および教育環境
所有しているシステム、または評価するための明示的な書面による許可を得たシステムのみをテストしてください。
許可なく第三者インフラストラクチャに対してこのプロジェクトを使用しないでください。
wp2shell は、2つの脆弱性間の相互作用を調査するための統合WordPress Coreセキュリティ研究ツールです:```text
CVE-2026-63030
|
v
REST API Batch Route Confusion
|
v
Validation / Dispatch Confusion
|
v
CVE-2026-60137
|
v
WP_Query SQL Injection
|
v
Blind SQL Access
|
v
Application / Object-State Manipulation
|
v
Privilege Escalation
|
v
Administrator Account Creation
|
v
Authenticated Code Execution
PoCはPythonの研究ツールとして実装されており、Python標準ライブラリを
使用します。サードパーティ製のPythonパッケージは不要です。
---
# 脆弱性チェーン
このプロジェクトは、WordPress Coreの2つの脆弱性を組み合わせています。```text
Unauthenticated Request
|
v
+----------------------+
| CVE-2026-63030 |
| REST Batch Route |
| Confusion |
+----------+-----------+
|
v
Validation Confusion
|
v
+----------------------+
| CVE-2026-60137 |
| WP_Query SQLi |
+----------+-----------+
|
v
Blind SQLi
|
v
Application-State Abuse
|
v
Privilege Escalation
|
v
Administrator Access
|
v
Authenticated RCE
```
重要なセキュリティ特性は、2つの脆弱性のそれぞれ単独ではなく、それらの相互作用にあります。
---
# CVE-2026-63030
## REST API バッチルート混乱
1つ目の脆弱性は、WordPress REST API バッチエンドポイントを通じたリクエスト処理に影響を与えます。
バッチ実装は、リクエスト位置でインデックス付けされた並列構造に、リクエストのマッチングおよび検証情報を保持します。
不正な形式のサブリクエストにより、それらの構造が同期を失う可能性があります。
これにより、オフバイワン(off-by-one)のディスパッチ状態が発生し、後続のリクエストが別のリクエストに関連付けられたハンドラーまたは検証コンテキストを使用して処理される可能性があります。
概念的に:```text
Request A
|
+-- validation entry
+-- matching entry
|
v
Malformed request
|
+-- internal state becomes desynchronized
|
v
Request B
|
+-- unexpected handler / validation context
```
The PoCは、ルート混乱が実際に到達可能かどうかを判断するための動作チェックを実行します。
---
# CVE-2026-60137
## WP_Query SQLインジェクション
2つ目の脆弱性は、`WP_Query` のSQL処理パスに影響します。
ルート混乱プリミティブが確立されると、攻撃者が制御する入力が脆弱なクエリパスに到達できるようになります。
PoCは、ブラインド差分テストによるSQLインジェクションの実証を示します。
調査機能には次のものが含まれます。
* ブールベースブラインドによる確認
* オプションの時間ベースの補強
* データベースのフィンガープリンティング
* 対応するスカラー値の抽出
* WordPressユーザーデータの調査
---
# チェーンが機能する仕組み
## 1. RESTバッチルート混乱
認証されていないリクエストがWordPress RESTバッチエンドポイントに到達します。
不正な形式のバッチサブリクエストにより、内部のリクエストマッチングおよび検証状態が非同期になります。
その結果、後続のリクエストが意図しないコンテキストで処理される可能性があります。
---
## 2. SQLインジェクション
ルート混乱プリミティブは、2つ目の脆弱性に必要なパスを提供します。
攻撃者が制御する値が、脆弱な `WP_Query` 処理パスに到達できるようになります。
これにより、ブラインドSQLインジェクションプリミティブが作成されます。
---
## 3. ブラインドSQL抽出
SQLインジェクションは、ブールベースブラインドの抽出チャネルとして使用できます。
PoCには、データベース情報および対応するWordPressユーザー情報を調査するための機能が含まれています。
---
## 4. アプリケーション状態の操作
このチェーンは、データベース制御の結果を使用して、WordPressアプリケーションオブジェクトおよび後続の処理に影響を与えます。
これにより、権限昇格段階に必要なプリミティブが提供されます。
---
## 5. チェンジセットの昇格
このチェーンは、WordPressのチェンジセット処理を利用して、管理者の実行コンテキストを確立します。
捏造された `customize_changeset` オブジェクトは、権限昇格シーケンスに参加できます。
---
## 6. フックの再エントリ
このチェーンは、アプリケーションのリクエストライフサイクルを通じてWordPressのリクエスト処理に再エントリします。
これにより、後続のAPI処理が昇格したコンテキストで実行できるようになります。
---
## 7. 管理者アカウントの作成
調査用PoCは、認証前の管理者作成段階を実装します。
これは、Mode 3がセキュリティ検証に役立つ主な理由です。つまり、Webシェル/RCE段階に進まずに、権限昇格の影響を実証します。
---
## 8. 認証済みコード実行
Mode 4は、調査チェーンを管理者作成の先、認証済みコード実行段階まで拡張します。
この段階は、隔離されたラボまたは明示的に許可された評価でのみ使用する必要があります。
---
# 影響を受けるバージョン
## 完全な認証前チェーン
| WordPressバージョン | 状態 |
| ------------------- | -------------- |
| 6.9.0 – 6.9.4 | **影響あり** |
| 7.0.0 – 7.0.1 | **影響あり** |
| 6.9.5 | **修正済み** |
| 7.0.2+ | **修正済み** |
PoCは、文書化された完全チェーンが影響を受けるバージョンとして `6.9.0–6.9.4` および `7.0.0–7.0.1` を特定しています。
## SQLインジェクション
SQLインジェクションコンポーネントは、完全なチェーンとは異なる修正バージョンの境界を持ちます。
調査実装は、`6.8.6` をSQLインジェクションの修正版として特定しています。
完全な認証前チェーンは、さらに脆弱なRESTバッチ動作に依存します。
本番環境の判断を行う前に、必ず関連する公式セキュリティアドバイザリで影響を受けるバージョンと修正済みバージョンを確認してください。
---
# 前提条件
PoCは、完全なチェーンについて次の条件を文書化しています。
* WordPress REST APIに到達可能であること
* Redis/Memcachedオブジェクトキャッシュがないこと
* 公開済みの投稿が少なくとも1つあること
その他のデプロイメントコンポーネントが再現性に影響する場合があります。
* リバースプロキシ
* Webアプリケーションファイアウォール
* REST API制限
* セキュリティプラグイン
* オブジェクトキャッシング
* HTTPフィルタリング
* ホスティング設定
バージョン範囲に一致するWordPressインストールであっても、すべての環境で完全なチェーンが機能するとは限りません。
---
# 機能
`wp2shell` は、次の調査機能を含む対話型メニューを提供します。```text
[1] Fingerprint + confirm vulnerability (non-destructive)
[2] Blind SQL extraction (fingerprint / dump users)
[3] Pre-Auth Admin creation
[4] Full RCE chain → admin creation + webshell
[5] Facilitated sink SQLi (WordPress 6.8.x / custom)
[6] Threaded scan over URL list
[7] Transport settings (proxy, TLS, timeout, delay)
[8] Change target URL
[0] Quit
```
---
# インタラクティブメニュー
メインメニューは、次の両方をサポートするように設計されています。
* 認可された単一のWordPressインストールのテスト
* 認可されたWordPress URLリストのテスト
したがって、このワークフローは、個別のリサーチ対象と、より大規模な認可された評価データセットの両方に使用できます。
---
# 推奨モード — モード3
## モード3を選ぶ理由
脆弱性調査では、**ウェブシェルを展開せずにセキュリティへの影響を示すことが目的の場合、モード3が推奨モードです**。
モード3は:```text
Pre-Auth Admin Creation
```
PoCはこのステージを次のように説明しています:```text
Unauthenticated UNION SQLi → new WordPress administrator
```
そして、それを完全なwebshell/RCEステージと明確に区別している:```text
No password cracking.
No webshell.
Non-destructive admin only.
```
これにより、Mode 3は、脆弱性チェーンが管理者レベルの侵害に到達することを
証明したいが追加のコード実行段階は回避したい場合に、
特に有用です。
---
# Mode 3 — 認証前の管理者作成
Mode 3を選択すると、以下が開きます:```text
────────────────────────────────────────────────────────────
CREATE ADMIN — Pre-Auth Admin RCE Chain
────────────────────────────────────────────────────────────
⚠ Unauthenticated UNION SQLi → new WordPress administrator.
⚠ No password cracking. No webshell. Non-destructive admin only.
```
その後、PoCはいくつかの環境および出力オプションを尋ねます。
## SQLite```text
→ Target uses SQLite? (WP-SQLite plugin) (y/N) [n]:
```
認可されたターゲットがPoCでサポートされているWordPress SQLite構成を使用する場合、これを`y`に設定します。
通常のMySQL/MariaDB WordPressインストールの場合、デフォルトは次のとおりです:```text
n
```
---
## 認証情報の検証
PoCは、任意で、生成された認証情報を検証するために、認証済みログインを試みる
ことができます:```text
→ Verify the generated credentials by logging in? (Y/n) [y]:
```
デフォルトは:```text
y
```
これは、生成された管理者資格情報が実際に認証されることを確認した結果を含めたい場合に便利です。
---
## 出力ファイル
Mode 3 は結果をローカルファイルに保存できます。```text
→ Output file (blank = skip, e.g. result.txt):
```
例えば:```text
logs.txt
```
フィールドを空白のままにすると、ファイル出力がスキップされます。
出力オプションは、複数のターゲットに対して許可された調査を実施し、結果を後で分析するために保持したい場合に便利です。
---
## Confusion Carrier
PoCは、2つのキャリアバリアントを提供します:```text
→ Confusion carrier variant (posts/categories) [posts]:
```
利用可能な選択肢:```text
posts
categories
```
デフォルトは:```text
posts
```
`posts` バリアントが主要なドキュメント化されたパスです。
---
# Mode 1 — フィンガープリントと確認
Mode 1 は次のとおりです:```text
[1] Fingerprint + confirm vulnerability (non-destructive)
```
これは脆弱性検証の最も安全な出発点です。
これは、ターゲットが脆弱性チェーンに関連する動作条件を示すかどうかの
判断に焦点を当てます。
チェック段階には以下を含めることができます:
* WordPressフィンガープリンティング
* RESTバッチエンドポイントのチェック
* ルート混乱の確認
* SQLインジェクションの確認
* ブールベースのブラインド差分テスト
* 任意の時間ベースの裏付け
目標が主に以下の場合はMode 1を使用します:```text
"Is this target potentially vulnerable?"
```
管理者への影響を示すのではなく。
---
# モード 2 — ブラインド SQL 抽出
モード 2 は:```text
[2] Blind SQL extraction (fingerprint / dump users)
```
このモードは、ブラインド抽出によるSQLインジェクションのプリミティブを実証します。
調査機能には以下が含まれます:
* データベースのフィンガープリンティング
* データベースのバージョン
* データベースユーザー
* データベース名
* 対応するスカラーSQL式
* WordPressユーザー情報
このモードは、単に脆弱性を検出するだけでなく、データアクセスの影響を実証するため、許可された環境でのみ使用してください。
---
# モード3 — 事前認証管理者作成
モード3は:```text
[3] Pre-Auth Admin creation
```
このモードは、チェーン全体の権限昇格(privilege escalation)の影響を示しています。
重要な違いは次のとおりです。```text
Mode 3
|
+-- Pre-authentication chain
+-- Administrator creation
+-- Optional login verification
+-- No password cracking
+-- No webshell
```
For security researchers who need to prove the vulnerability's
administrator-level impact without deploying a webshell, this is the
preferred mode.
---
# Mode 4 — 完全なRCEチェーン
Mode 4 は次のとおりです:```text
[4] Full RCE chain → admin creation + webshell
```
これにより、チェーンは管理者作成の範囲を超えて、認証されたコード実行へと拡張されます。
概念的には:```text
Unauthenticated
↓
Route Confusion
↓
SQL Injection
↓
Privilege Escalation
↓
Administrator Creation
↓
Administrator Authentication
↓
Webshell
↓
Code Execution
```
このモードは、隔離されたラボと、明示的に許可されたペネトレーションテストに
限定されるべきです。
通常の脆弱性検証では、Mode 3 の方が適しています。これは、
Webシェルを展開せずに管理者影響の境界を
示すためです。
---
# Mode 5 — Facilitated Sink SQLi
Mode 5 は:```text
[5] Facilitated sink SQLi (WordPress 6.8.x / custom)
```
このモードは、完全な事前認証チェーンの外側にあるSQLインジェクションシンクを調査するためのものです。
これは、以下を調査する研究者にとって有用です:
* WordPress 6.8.x 環境
* カスタム構成
* SQLインジェクションプリミティブを独立して
* 脆弱性の再現
* 防御的検証
---
# モード6 — スレッド化URLスキャン
モード6は:```text
[6] Threaded scan over URL list
```
このモードは、複数の
WordPressターゲットを含む許可された評価を対象としています。
1つのURLを手動でテストする代わりに、このツールは
ワーカースレッドを使用してURLリストを処理できます。
概念的には:```text
urls.txt
|
+-- URL 1
+-- URL 2
+-- URL 3
+-- URL 4
+-- ...
|
v
Threaded vulnerability checks
|
v
Results
```
スキャン機能では、次のようなオプションを使用できます。
* ワーカースレッド数
* 確認遅延
* 任意のバージョンプルーフ
* JSONレポート出力
* 混乱キャリアバリアント
これは、明示的な許可を得たURLリストに対してのみ使用してください。
---
# 単一ターゲット vs URLリスト
`wp2shell` は、一般的に2つの方法で使用できます。
## 単一のWordPressターゲット
1つのインストールを調査する場合は、単一のターゲットを使用します。
一般的なユースケース:
* ローカルラボ
* ステージング環境
* 顧客承認済みのペネトレーションテスト
* 脆弱性の再現
* CVE検証
ターゲットはWordPressのベースURLである必要があります。
---
## URLリスト
複数の承認済みターゲットの場合、Mode 6 でURLリストを処理できます。
概念的なファイルの例:```text
https://wordpress-lab-01.example
https://wordpress-lab-02.example
https://wordpress-lab-03.example
https://wordpress-lab-04.example
```
スレッド化されたスキャナは、リストを処理して結果を記録できる。
スキャン実装は、調査結果を保持するための出力/レポートオプションもサポートしている。
---
# モード選択ガイド
| 目標 | 推奨モード |
| -------------------------------------- | ---------------- |
| ターゲットが脆弱かどうかを確認する | **モード 1** |
| SQLインジェクションを実演する | **モード 2** |
| 管理者レベルの影響を実演する | **モード 3** |
| 完全なRCEチェーンを実演する | **モード 4** |
| SQLiシンクを独立して調査する | **モード 5** |
| 許可されたURLリストをテストする | **モード 6** |
| プロキシ/TLS/タイムアウト/遅延を設定する | **モード 7** |
| 現在のターゲットを変更する | **モード 8** |
### 推奨される調査ワークフロー
ほとんどのセキュリティ評価では:```text
Mode 1
↓
Confirm vulnerability
↓
Mode 3
↓
Demonstrate administrator impact
```
完全なコード実行検証が明示的に要求され、許可されている場合にのみ、
Mode 4 に進んでください。
---
# Mode 7 — トランスポート設定
Mode 7 は次のとおりです:```text
[7] Transport settings (proxy, TLS, timeout, delay)
```
This section controls the HTTP transport behavior used by the tool.
このセクションでは、ツールが使用するHTTPトランスポートの動作を制御します。
Supported research settings include:
サポートされている調査設定は以下のとおりです。
* Proxy configuration
* プロキシ設定
* TLS behavior
* TLS動作
* Request timeout
* リクエストタイムアウト
* Request delay
* リクエスト遅延
* Connection/retry behavior
* 接続/リトライ動作
These options are useful when testing WordPress installations behind:
これらのオプションは、以下の環境の背後にあるWordPressインストールをテストする際に役立ちます。
* Proxies
* プロキシ
* TLS configurations
* TLS構成
* Slow connections
* 低速接続
* Rate-limiting infrastructure
* レート制限インフラストラクチャ
* Controlled lab environments
* 制御されたラボ環境
---
# Mode 8 — Change Target URL
# モード8 — ターゲットURLの変更
Mode 8 is:
モード8は次のとおりです。```text
[8] Change target URL
```
これにより、現在選択中のターゲットを、対話型ワークフロー全体を再起動することなく変更できます。
許可されたラボ環境間を移動する場合に便利です。
---
# 検出ロジック
PoCは、WordPressのバージョン文字列のみに依存するのではなく、動作チェックを使用します。
## RESTバッチ検出
このツールは、RESTバッチエンドポイントに到達可能であることを確認します。
## ルート混乱検出
このツールは以下を使用できます:
* レスポンスマーカー
* 構造的なレスポンス動作
構造的アプローチは、特定のRESTコレクションを対象としたリクエストが、別のコレクションとして処理されるかどうかをチェックします。
## SQLインジェクション検出
このツールは、ブールベースのブラインド差分を実行できます。
さらに、時間ベースのチャネルを裏付けとして使用することもできます。
---
# 技術チェーン
完全な研究チェーンは次のように要約できます:```text
1. REST API reachable
|
v
2. Batch route confusion
|
v
3. Validation / dispatch confusion
|
v
4. SQL injection reaches WP_Query
|
v
5. Blind SQL channel
|
v
6. Application-state manipulation
|
v
7. Changeset privilege escalation
|
v
8. Administrator context
|
v
9. Administrator account creation
|
v
10. Authenticated code execution
```
---
# ルートバリアント
このPoCは、confusion-carrierの2つのバリアントをサポートしています。```text
posts
categories
```
デフォルトは:```text
posts
```
`posts` バリアントは、主要な文書化されたエンドツーエンドのキャリアです。
`categories` バリアントは、研究用の代替ルート混乱パスを提供します。
---
# SQLite サポート
PoC には、WordPress SQLite 構成を使用する環境向けの SQLite 互換性サポートが含まれています。
モード 3 では、このオプションが次のように公開されます。```text
Target uses SQLite? (WP-SQLite plugin)
```
デフォルト:```text
n
```
使用方法:```text
y
```
when the authorized target uses the supported SQLite configuration.
---
# インストール
PoCはPythonの標準ライブラリを使用します。
サードパーティのPythonパッケージは不要です。
必要な環境:```text
Python 3.x
```
リポジトリをクローンし、隔離された環境または明示的に許可された環境内でリサーチツールを実行してください。
---
# プロジェクト構造
推奨されるリポジトリ構造は以下のとおりです:```text
wp2shell/
│
├── wp2shell.py
├── README.md
├── LICENSE
└── screenshots/
```
主な研究実装は次のとおりです:```text
wp2shell.py
```
---
# セキュリティへの影響
成功する攻撃チェーンは、以下の結果をもたらす可能性があります:
* 認証なしSQLインジェクション
* データベース情報の漏えい
* WordPressユーザー情報の暴露
* 権限昇格
* 管理者アカウントの作成
* WordPress管理画面への完全なアクセス
* 認証済み任意コード実行
* ホスティング環境によってはOSレベルの侵害
したがって、個々の脆弱性を単独で考慮した場合よりも、チェーン全体の影響は
はるかに大きくなります。
---
# 防御的検知
管理者は、以下に関連する不審な活動を調査する必要があります:
* WordPress REST Batchエンドポイント
* 異常なネストされたバッチリクエスト
* 不正な形式のバッチリクエストパス
* 不審なクエリパラメータ
* 予期しない管理者アカウントの作成
* 予期しない`customize_changeset`アクティビティ
* 予期しないプラグインのインストール
* 予期しないPHPファイル
* 不審なプラグインの変更
* ウェブシェルに似た動作
確認:```text
Web server logs
+
WordPress logs
+
Database audit logs
+
File integrity monitoring
```
特に、侵害が疑われる時期の前後です。
---
# 緩和策
主な緩和策は、WordPress を修正済みリリースにアップグレードすることです。
影響を受けたインストール環境では、以下も実施してください:
1. すべての管理者アカウントを確認する。
2. 許可されていない管理者アカウントを削除する。
3. 最近インストールまたは変更されたプラグインを確認する。
4. WordPress REST API ログを確認する。
5. Webサーバーのアクセスログを確認する。
6. 予期しない PHP ファイルを検索する。
7. プラグインディレクトリに不正な変更がないか確認する。
8. 侵害が疑われる場合は認証情報をローテーションする。
9. データベースの整合性を確認する。
10. 永続化メカニズムを削除する。
11. 必要に応じて、侵害された WordPress コンポーネントを信頼できるソースから
再インストールする。
---
# 責任ある調査ワークフロー
通常の許可された評価では、推奨される進行順序は以下のとおりです:```text
START
|
v
┌─────────────────┐
│ MODE 1 │
│ Detect / Confirm│
└────────┬────────┘
|
Vulnerable?
/ \
No Yes
| |
STOP v
┌───────────────┐
│ MODE 3 │
│ Admin Impact │
└───────┬───────┘
|
Need full RCE?
/ \
No Yes
| |
STOP v
┌───────────────┐
│ MODE 4 │
│ Full RCE Lab │
└───────────────┘
```
Mode 3 は、webshell ステージを展開せずに管理者レベルの侵害を確立するため、一般的に影響実証の好ましいポイントです。
---
# 研究 vs 本番環境
このプロジェクトは、管理されたセキュリティ研究を目的としています。
このツールを汎用的なインターネットスキャナーとして扱わないでください。
本番環境の場合:
* 書面による許可を取得する。
* ターゲットの範囲を定義する。
* 許可される操作を定義する。
* 非破壊的な検証を優先する。
* 十分な証拠が収集されたら停止する。
* ログと証拠を保持する。
* 該当する脆弱性開示プロセスに従う。
---
# クレジット
脆弱性調査 / 発見:
**Adam Kues**
Assetnote / Searchlight Cyber
プロジェクト:
**wp2shell**
この研究実装は、脆弱性チェーンを次のように特定しています:```text
CVE-2026-63030
+
CVE-2026-60137
```
---
# 参照
* CVE-2026-63030
* CVE-2026-60137
* GHSA-ff9f-jf42-662q
* GHSA-fpp7-x2x2-2mjf
* WordPress Core
* WordPress REST API
* WordPress `WP_Query`
---
# 免責事項
このリポジトリには、WordPress Core に影響を与える脆弱性チェーンを示すセキュリティ研究が含まれています。
本ソフトウェアおよびドキュメントは、以下の目的で提供されています:
* 教育目的
* セキュリティ研究
* 脆弱性の検証
* 防御テスト
* 許可されたペネトレーションテスト
著者は、本資料の不正使用または悪意のある使用について責任を負いません。
**所有しているシステム、または明示的な許可を得たシステムのみをテストしてください。**
---
# キーワード```text
wp2shell
WordPress
WordPress Core
WordPress Security
WordPress Vulnerability
WordPress RCE
Pre-Auth RCE
Pre-Authentication RCE
CVE-2026-63030
CVE-2026-60137
REST API
REST Batch
REST API Batch
Route Confusion
WP_Query
SQL Injection
SQLi
Blind SQL Injection
Privilege Escalation
Administrator Creation
Remote Code Execution
RCE
Proof of Concept
PoC
Security Research
Penetration Testing
```
---
## リポジトリトピックス
推奨されるGitHubリポジトリのトピックス:```text
wp2shell
wordpress
wordpress-core
wordpress-security
wordpress-vulnerability
wordpress-rce
cve
cve-2026-63030
cve-2026-60137
poc
proof-of-concept
rce
sql-injection
sqli
blind-sqli
rest-api
security-research
penetration-testing
privilege-escalation
```
---
## プロジェクト概要```text
wp2shell is a WordPress Core pre-authentication vulnerability-chain PoC
combining CVE-2026-63030 (REST API Batch route confusion) and
CVE-2026-60137 (WP_Query SQL injection), demonstrating the progression
from unauthenticated access to SQL injection, privilege escalation,
administrator creation, and authenticated code execution.
```
(翻訳対象のMarkdownコンテンツが入力されていません。コンテンツを貼り付けて再送信してください。)```
disclaimer: this project is for educational purposes only
```