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」にそのあたりの通信(リクエスト)を置いといた。