簡單使用BurpSuite及請求包、響應包的格式和含義


一、HTTP協議基礎

HTTP:HyperText Transfer Protocol,超文本傳輸協議

1.協議特點:

  • 簡單快速,請求方式get post head等8中請求方式
  • 無連接(一次請求就斷開)無狀態(沒有記憶功能,不會記錄任何信息)

2.支持的模式:B/S、C/S(websocket進行通信)

 

二、HTTP的請求包

1.請求包格式:request=請求行(請求方式  URL  協議/版本)+請求頭(形勢都為ket:value)+空行+請求數據(若此處為空,請求包的請求方式為get,數據存放在URL中,若有數據,則說明該請求方式為post)

2.請求方式:

  • http1.0版本: GET   POST  HEAD
  • http1.1版本: GET  POST  HEAD  OPTIONS  DELETE  TRACE  CONNECT  PUT  PATCH
方法 描述
GET 請求指定的頁面信息,並返回實體主體
POST

向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。

數據被包含在請求體中。POST 請求可能會導致新的資源的建立和或已有資源的修改

HEAD 類似於 GET 請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
OPTIONS 允許客戶端查看服務器的性能
DELETE 請求服務器刪除指定的頁面
TRACE 回顯服務器收到的請求,主要用於測試或診斷
CONNECT  HTTP/1.1 協議中預留給能夠將連接改為管道方式的代理服務器
PUT 從客戶端向服務器傳送的數據取代指定的文檔的內容
PATCH 是對 PUT 方法的補充,用來對已知資源進行局部更新

(表格來源:https://www.runoob.com/http/http-methods.html,感謝!)

  • GET和POST請求方式的比較:

    相同點:

    1. 都可以創建數組array,數組包含鍵值對(key=value),其中的鍵為表單控件的名稱,值為用戶輸入的數據
    2. 分別被視為$_GET和$_POST,是超全局變量

    不同點:

    1. GET型方式:將用戶發送的數據拼接到URL中,並且發送的數據量較小,不安全
    2. POST型方式:參數放在請求包中的請求數據中,查看必須使用工具查看,發送的數據量較大,安全性較高

 

三、HTTP的響應包

響應包:用戶發送的請求包達到服務器后,要去處理該請求,把處理之后的結果發送給用戶瀏覽器,我們將該結果稱為響應包,用response表示

1.響應包格式:response=狀態行(協議/版本  狀態碼)+消息報頭+空行+響應正文(也叫做響應內容,是由HTML+CSS+JS組成的響應正文)

2.狀態碼

  • 狀態碼由三位數字組成,第一位數字表示響應的類型,共有5種類型:

    1xx:表示服務器已經接受到請求並且需要繼續處理

    2xx:表示服務器已經成功接受到請求,並處理了該請求

    3xx:表示重定向,URL要跳轉到其他頁面去請求

    4xx:表示用戶請求由問題

    5xx:表示服務器內部出錯

3.常見狀態碼:

  • 200  OK

    表示請求被服務器正常處理 

  • 302  Found 

    臨時重定向,表示請求的資源臨時搬到了其他位置 

  • 304  Not Modified 

    表示客戶端發送附帶條件的請求時,條件不滿足 

  • 400  Bad Request 

    表示請求報文存在語法錯誤或參數錯誤,服務器不理解 

  • 403  Forbidden 

    表示對請求資源的訪問被服務器拒絕了 

  • 404  Not Found  

    表示服務器找不到你請求的資源

  • 500 Internal Server Error  

    表示服務器執行請求的時候出錯了 

 

四、URL

URL:uniform resource locator,統一資源定位系統,在網絡中用來表示某處的資源

  • URL格式:

http(協議)://www.baidu.com(域名):8080(端口)/news(虛擬目錄)/index.php(文件名部分)?parameter=deal&id=35(參數)#name(錨部分)

  • parameter=deal&id=35兩個參數
  • 參數從?后面開始的,第一個參數和第二個參數之間用&連接

 

五、JDK

JDK:Java的軟件開發工具包,方便我們在本地運行Java開發的工具

1.下載JDK時要復制安裝JDK的路徑

2.配置環境變量

  • win7 配置環境變量:

右擊計算機-->屬性-->高級系統設置-->高級-->環境變量-->系統變量-->path,雙擊進入,在變量值中最后添加;加上安裝JDK的路徑-->確定

  • win10 配置環境變量:

右擊計算機-->屬性-->高級系統設置-->高級-->環境變量-->系統變量-->path,雙擊進入,在最后的空白行中直接輸入JDK的安裝路徑

驗證:在doc命令窗口中輸入  java -version  回顯下圖信息,表示配置環境變量成功

 

六、BurpSuite

BurpSuite:多功能滲透測試工具,滲透測試神器,使用JAVA開發,功能齊全,方便滲透測試人員去測試WEB站點

  • 功能:爬蟲、掃描、攔包、重發、爆破、解碼和編碼、比較等等

 

七、使用BP(BurpSuite的簡稱)攔截數據包

1.下載JDK,配置環境變量(上面有詳細步驟)

2.下載一個火狐瀏覽器,並打開,找到foxyproxy,右擊,設置代理服務器,設置過程如下圖所示

  • 代理服務器:代理網絡用戶去取得網絡信息。形象地說,它是網絡信息的中轉站,是個人網絡和Internet服務商之間的中間代理機構,負責轉發合法的網絡信息,對轉發進行控制和登記
  • 過程如圖所示:

3.打開BP,點擊Proxy --> Options配置,進入一下界面,可以看到BP默認監聽8080端口

  • Proxy是BurpSuite最核心的部分,通過攔截,查看和修改所有的請求和響應您的瀏覽器與目標Web服務器之間傳遞

4.點擊Intercept截斷 --> 關閉攔截狀態Intercept is off(默認開啟攔截狀態)

  • 這里若開啟攔截,瀏覽網頁時將請求包攔截,就無法得到服務器的響應,從而瀏覽不到界面

5.打開phpStudy,啟動Apache2、FTP、MySQL

6.在phpstudy_pro/www/中,刪掉文件info.php,新建index.html

7.打開火狐瀏覽器,右鍵foxyproxy開啟代理服務器(或點擊foxyproxy,在選擇工作模式中修改),狐狸頭變藍,在地址欄中輸入127.0.0.1

8.打開BP,開啟攔截狀態Intercept is on,等待或者刷新火狐瀏覽器界面,可以看到如圖所示界面

  • 這里可以看到,請求方式為GET

9.打開BP,關閉攔截狀態,打開火狐瀏覽器,瀏覽任意網站

  • 關閉BP,抓取其他請求包,但是在瀏覽網站時會出現以下界面

  • 點擊高級,發現下面沒有添加例外,換個網站

  • 添加例外后,就能訪問了

10.抓取POST包,就要向指定資源提交表單或者上傳文件,在發起請求之前,打開BP,開啟攔截狀態后,發起請求,BP就可以攔截到POST包

11.攔截響應包時,要將截斷服務器響應的選項勾選,如下圖所示

 

12.在攔截到POST請求包時,點擊Forward發送,就可以查看到響應包

 

六、數據頭中每個參數的含義

1.請求頭中每個參數的含義

參數 含義

Host

表示請求服務器的IP

User_Agent

表示用戶本地環境(工具環境)

Accept

瀏覽器可解析的應用環境

Accept-Language

瀏覽器可解析的語言類型

Accept-Encoding

瀏覽器可解析的編碼方式

Referer

表示請求頁面是從哪里來的(當前所處位置)

Cookie

表示服務器和瀏覽器之間的會話狀態,

該會話狀態可以表示用戶是否登陸過,

一般都是服務器給配置的,具有時效性。

cookie失效,就需要用戶重新登錄,

只有登錄成功之后,瀏覽器就會保存cookie,

每次去服務器去請求都會帶上cookie,

並且該cookie是需要在服務器中驗證的

X-Forwarded-For

表示用戶真實的IP

Content-Type

內容類型,表示該請求數據的類型

2.響應頭中每個參數的含義:

參數 含義

Data

服務器發出響應的時間

Server

服務器的環境(如:fcgid表示Apache版本)

Content-Length

返回來數據包的長度

Connection

連接狀態

Content-Type

返回響應數據的類型,告訴瀏覽器該使用哪種

方式去解析或打開該響應數據的內容

Location

表示要跳轉到哪個頁面中

Set-Cookie

表示服務器給瀏覽器設置cookie的值 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM