プロジェクト

全般

プロフィール

WebDavリクエストログ 20190721

概要

WebDavってどんな通信してるのかなーって思ったのでキャプチャしてみてみる。

環境

  • WebDavサーバ:てきとうに用意。今回はapacheを使用。
  • WebDavクライエント:Windowsのエクスプローラー。手順は下で。
  • 通信キャプチャツール:OWASPZAP

HTTP/1.1の拡張なんだし、そこら辺のキャプチャツールで詳細を見れるんじゃないかなぁと思い試す。
とりあえず、WebDavのホストはdav.example.comとかにしておこう。

ZAPの手順

dav.example.comだけ履歴に出るようにする。
先にZAPを準備しておくと、エクスプローラーがWebDavをマウント(?)するときのログも見れるので面白い。
OS側のプロキシの設定を入れるのも忘れずに。やり方は:

  1. Windowsキー + x を押す
  2. [ネットワーク接続」を選ぶ
  3. 「プロキシ」を選ぶ

エクスプローラーの準備

step1

  1. 「エクスプローラー」を開いて、「PC」を選択
  2. リボンの中にある「ネットワークの場所の追加」を選択

step2

  1. URL(https://dav.example.com)を入力
  2. 設定によってはこの後ID・パスワードを聞かれるので入力
  3. 「ネットワークの場所」の中にショートカットができる

アップロードのリクエスト

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