More Related Content
Similar to [BurpSuiteJapan]HTTP基礎入門 (20)
[BurpSuiteJapan]HTTP基礎入門
- 2. • HTTP(HyperText Transfer Protocol)
情報の転送プロトコル(通信規約)
• URL(Uniform Resource Locator)
情報の場所を指し示す書式
• HTML(HyperText Markup Language)
情報を表現する文書フォーマット
Webを構成する3つの技術
1
- 4. 実際はこんな通信をしています
サーバークライアント
HTTP Request
HTTP Response
GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101
Firefox/41.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 200 OK
Date: Sun, 25 Oct 2015 18:06:18 GMT
Content-Length: 96
Connection: close
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
Hello World!
</body>
</html>
http://www.example.com
http://www.example.com
3
- 10. HTTPリクエストの構造
POST /login.php HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101
Firefox/41.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://www.hoge.co.jp/login.php
Cookie: PHPSESSID=4oqiftb4gc294fbfgkd0m4cfa4
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
id=user&pass=password
リクエストライン
ヘッダーフィールド
空白行
メッセージボディ
9
- 11. リクエストラインの構造
POST /login.php HTTP/1.1
メソッド リクエストURL プロトコルバージョン
メソッド名 内容
GET データを取得することをWebサーバーに要求
HEAD
データそのものは要求せず、メッセージヘッダーだ
けを取得することをWebサーバーに要求
POST Webサーバーに、データを送信
PUT Webサーバーに、ファイルをアップロード
DELETE Webサーバー上にあるデータを削除することを要求
OPTIONS サポートしているメソッドの取得
TRACE 自分宛にリクエストメッセージを返す
CONNECT プロキシサーバーなどに、トンネルの確立を要求
10
- 12. HTTPレスポンスの構造
HTTP/1.1 200 OK
Date: Sun, 25 Oct 2015 18:06:18 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Sun, 25 Oct 2015 17:54:17 GMT
Accept-Ranges: bytes
Content-Length: 96
Connection: close
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
Hello World!
</body>
</html>
ステータスライン
空白行
ヘッダーフィールド
メッセージボディ
11
- 18. Cookieを利用したセッション管理
サーバークライアント
POST /login.php HTTP/1.1
Host: www.example.com
(略)
id=user&pass=password
HTTP/1.1 302 Found
Set-Cookie: sessionid=2d84e80feb2749d;
(略)
ログイン認証
セッションIDを発行
GET /top.php HTTP/1.1
Host: www.example.com
Cookie: sessionid=2d84e80feb2749d;
(略)
HTTP/1.1 200 OK
(略)
セッションIDを照合
セッションIDに
対応する結果を返す
ブラウザに
Cookieをセット
ブラウザがCookie
を送信
7927d0cd79707f9
14f93fff42d395ee
2d84e80feb2749d
セッションID
を格納
http://hoge.co.jp
http://hoge.co.jp
http://hoge.co.jp
○○さんようこそ!
ID:
PASS:
login
17
- 21. Local Proxy Tool
Local Proxy
HTTP Request
HTTP Response
ブラウザ
HTTP Request
HTTP Response
クライアント環境
サーバー
• クライアントのLocal環境で動作するProxy
• 通信内容の詳細を確認できる
• 通信内容を編集して送信することもできる
20