0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実機検証:Azure WAFはupload fileの中身まで確認しますか

Posted at

背景

Upload fileの中に怪しい・危ない文字列を入れたら、それをpostすると、Azure WAF側で検知されますか。との検証をやってみました。

検証経緯

1.まずはtest.txt ファイルを用意します。中身には変な文字列がいっぱいあります。

"payload=<script>alert('xss')</script>&id=1=1; --"
payload=<script>alert('xss')</script>&id=1=1; --
bash
cc
echo
[https://[URL]/?q=]https://[URL]/?q= <script>alert('XSS')</script>
j_id_id186pc2:090-7927--3999
passwd=test

2.Curlコマンドで実施します。
curl -X POST -F "file=@C:\Users\hirtan\test.txt"
結果は200です。検知されませんでした。

C:\Users\hirtan>curl -X POST -F "file=@C:\Users\hirtan\\test.txt" https://tanappgw.jpninjateams.com
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>テキストファイルアップロード</title>
</head>
<body>
<h2>テキストファイルアップロード</h2>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="textfile" accept=".txt">
<input type="submit" value="アップロード">
</form>
    </body>
</html>

-F ではなく、--data-binaryに変更してpostしたら、検知されるようになりました。
curl -X POST --data-binary @C:\Users\hirtan\test.txt https://tanappgw.jpninjateams.com

C:\Users\hirtan>curl -X POST --data-binary @C:\Users\hirtan\test.txt https://tanappgw.jpninjateams.com
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>Microsoft-Azure-Application-Gateway/v2</center>
</body>
</html>

4.-F と --data-binaryの違い:
-Fを使用した場合:
リクエストがmultipart/form-data形式で送信され、サーバー(tanappgw.jpninjateams.com)はこれをフォームアップロードとして処理。

--data-binaryを使用した場合、
リクエストがapplication/octet-stream形式で送信され、ファイルの内容がそのままボディに含まれる。

5.実際browser上でtest.txt fileをアップロードしてみたら、成功でした。
image.png

結論

Application Gateway の WAF においてはアップロードされたファイルの中身を検査することは出来ません。
(= 要求本文の検査のような検査を、ファイルの中身に対して行うことは出来ません。)
つまり、WAF 経由でアップロード可能なファイルの上限サイズを設定することは可能ですが、
ファイルと判断されたデータ (Content-type が multipart/form-data のデータ) は、
要求本文とは異なり、中身にマネージド ルールに検知される内容が含まれていたとしても、
検知されない動作となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?