WebDavリクエストログ 20190721¶
概要¶
WebDavってどんな通信してるのかなーって思ったのでキャプチャしてみてみる。
環境¶
- WebDavサーバ:てきとうに用意。今回はapacheを使用。
- WebDavクライエント:Windowsのエクスプローラー。手順は下で。
- 通信キャプチャツール:OWASPZAP
HTTP/1.1の拡張なんだし、そこら辺のキャプチャツールで詳細を見れるんじゃないかなぁと思い試す。
とりあえず、WebDavのホストはdav.example.comとかにしておこう。
ZAPの手順¶
dav.example.comだけ履歴に出るようにする。
先にZAPを準備しておくと、エクスプローラーがWebDavをマウント(?)するときのログも見れるので面白い。
OS側のプロキシの設定を入れるのも忘れずに。やり方は:
- Windowsキー + x を押す
- [ネットワーク接続」を選ぶ
- 「プロキシ」を選ぶ
エクスプローラーの準備¶
- 「エクスプローラー」を開いて、「PC」を選択
- リボンの中にある「ネットワークの場所の追加」を選択
- URL(https://dav.example.com)を入力
- 設定によってはこの後ID・パスワードを聞かれるので入力
- 「ネットワークの場所」の中にショートカットができる
アップロードのリクエスト¶
これがhtmlファイルを送っている瞬間。
PUT https://dav.example.com/uploads/sample.html HTTP/1.1 Connection: Keep-Alive User-Agent: Microsoft-WebDAV-MiniRedir/10.0.17763 If: (<opaquelocktoken:a55549b6-3c79-42c6-80a6-c2d17f604e96>) translate: f Content-Length: 1334 Authorization: *********** Host: 192.168.0.2 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> <head> <meta charset="utf-8" /> <title>keywords</title> <style> @import url(main.css); </style> </head> <body> 以下略
PUTメソッド使って、ボディ部にsample.htmlの中身をそのまま書いている。
これならアップローダぐらい簡単に実装できそうねぇ。
事前にHEADメソッドを叩いて認証済ませたり、ディレクトリの中身を表示するためにPROPFINDメソッドを叩いたりしているのが見て取れる。
「ZAP_Report_Message_Masked.txt」にそのあたりの通信(リクエスト)を置いといた。