web應用協議——HTTP
HTTP( 超文本傳輸協議)
- 一種通信協議, 1990 年提出, 當前版本為HTTP/1.1
- 使用超文本標記語言(HTML) 將資源從服務器傳送到客戶端
超文本傳輸協議特點
- 請求、響應模式
- 簡單快速: 客戶向服務器請求服務時, 只需傳輸請求方法和路徑
- 靈活: HTTP 允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type 加以標記
- 無連接: 一個請求一個連接, 完成后斷開
- 無狀態: 協議對於事務處理沒有記憶能力, 在服務器不需要先前信息時應答較快
HTTP協議結構
- HTTP的一個會話, 由Request 和response 組成
- HTTP 請求(Requests) 包含三個部分
請求行: 方法, URL, 協議/ 版本(Method-URl-Protocol/Version)
消息報頭(Request headers)
請求正文( Entity body)
- HTTP 響應(Responses) 也包含三個部分
狀態行: 協議狀態代碼描敘(ProtocoI-Status code-Description)
消息報頭(Response headers)
響應正文( Entity body) 服務器返回的資源的內容
1 HTTP請求方法 POST /servIet/defauIt.JSP HTTP/1.1
HTTP請求方法規定了客戶與服務器聯系的類型不同
HTTP1.1 支持7 種請求方法:GET, POST, HEAD, OPTiONS, PUT, DELETE, 和TRACE
- 兩種最常用的方法: GET 和POST
GET: 把所有請求的數據都放在URL 當中, 從URL 中可以直接看到, 但最大傳輸的信息量是2 KB
POST: 把請求的數據放在請求的數據體中, 在URI中不可見, 長度不受限, 常用於提交表單
URI(相對路徑)
- /servIet/defauIt.JSP 表示一個URI,URI 指明了一個INTERNET 資源。一個URI通常是相對於服務器的根目錄被解釋的, 使用符號( / ) 開頭。
URL(絕對路徑)
- HTTP URL ( URL 是一種特殊類型的URI, 包含了用於查找某個資源的足夠的信息)的格式如下:
- http://host[":"port][abs_path]
1.1 HTTP請求頭域
請求頭域(request header) 包含了一些有用的客戶機環境的信息和請求的實體(entity body) 信息。比如, 它可以包含瀏覽器使用的語言和實體的長度等等。每個請求包頭都被CRLF( 回車換行) 序列所分離。
一般包含的都是客戶機的信息,服務器根據收到的客戶機信息返回相應內容。
1.2 HTTP請求實體
請求實體, 在一個典型的HTTP請求中, 這個實體可以變得更長。
Get 方法去請求實體, 在url 中可見, 最大長度2KB
post 方法請求實體, 長度不限, URL 中不可見, 需要借助協議分折軟件(burpsuite)
2 HTTP響應
HTTP 響應狀態行
- 狀態行: HTTP-Version Status-Code Reason-Phrase
- HTTP 一Version 表示服務器HTTP 協議的版本;
- Status 一Code 表示服務器發回的響應狀態代碼
- Reason 一Phrase 表示狀態代碼的文本描述。
- 狀態代碼有三位數字組成, 第一個數字定義了響應的類別, 且有五種可能取值:
1 × × : 指示信息表示請求已接收, 繼續處理
2 × × : 成功一表示請求已被,成功接收、理解、接受
3 x x : 重定向一要完成請求必須進行更進一步的操作
4 × × : 客戶端錯誤一請求有語法錯誤或請求無法實現
5 × × : 服務器端錯誤一服務器未能實現合法的請求
http 響應消息報頭
- 響應消息報頭允許服務器傳遞不能放在狀態行的附加信息, 這些域主要描述服務器的信息和Request-URI進一步的信息。響應頭域包含Age 、Location 、Proxy-Authenticate 、PubIic 、Retry-After 、Server 、Vary 、Warning 、WWW-
Authenticate
3 Burp Suite抓包實驗
目標靶機:win2003 server、IIS
客戶端:火狐瀏覽器,通過安裝火狐插件可快速切換代理,方便burp抓包
插件設置如下:
burp中 options可以看到設置代理的IP和端口。下圖所示:
proxy(代理):主要功能——代理、抓包、干擾、攔截、放行
intercept is on 為攔截狀態 其對應的intercept is off 為非攔截狀態,設置完代理后打開攔截狀態,瀏覽器發起的請求會被burpsuite所攔截。

可以在消息分析選項卡查看這次請求的所有內容
- Raw 這個視圖主要顯示web請求的raw格式,包含請求地址, http協議版本, 主機頭, 瀏覽器信息,accept可接受的內容類型,字符集,編碼方式,cookies等, 可以手動修改這些內容,然后在點擊forward進行滲透測試
- params 這個視圖主要是顯示客戶端請求的參數信息,get或者post的參數,cookies參數,也可以修改
- headers是頭部信息和Raw其實差不多,展示更直觀
- Hex 這個試圖顯示Raw的二進制內容
Burp Proxy的攔截功能
主要由Intercept(攔截)選項卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight構成,它們的功能分別是:
- Forward的功能是當你查看過消息或者重新編輯過消息之后,點擊此按鈕,將發送消息至服務器端。
- Drop的功能是你想丟失當前攔截的消息,不再forward到服務器端。
- Interception is on表示攔截功能打開,攔截所有通過Burp Proxy的請求數據;Interception is off表示攔截功能關閉,不再攔截通過Burp Proxy的所有請求數據。
- Action的功能是除了將當前請求的消息傳遞到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer組件外,還可以做一些請求消息的修改,如改變GET或者POST請求方式、改變請求body的編碼,同時也可以改變請求消息的攔截設置,如不再攔截此主機的消息、不再攔截此IP地址的消息、不再攔截此種文件類型的消息、不再攔截此目錄的消息,也可以指定針對此消息攔截它的服務器端返回消息。
burp suite使用教程參考:https://blog.csdn.net/weixin_38079422/article/details/80729158
4 抓包結果
我們可以看到HTTP請求為get方法,host,客戶端,cookie等信息。HTTP Header中Accept-Encoding 是瀏覽器發給服務器,聲明瀏覽器支持的編碼類型
HTTP響應狀態碼200,服務器版本信息、響應的HTTP內容類型、內容長度
burp suite想要抓包htts網站,需要安裝證書,訪問代理127.0.0.1:8080下載證書,並在火狐瀏覽器中安裝。