WebGoat之HTTP基礎

作者:啊陳

HTTP如何工作

HTTP Basics(HTTP基礎)這個練習可以讓我們了解,瀏覽器和Web程序之間的數據傳輸,以及如何設置代理捕獲數據包。

HTTP工作流程為:

1.建立TCP連接

在HTTP工作開始之前,Web瀏覽器首先要通過網路與Web伺服器建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網路。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能進行更高層協議的連接,因此,首先要建立TCP連接,一般TCP連接的埠號是80。

2.Web瀏覽器向Web伺服器發送請求命令建立了TCP連接

Web瀏覽器就會向Web伺服器發送請求命令。例如:GET/sample/hello.jsp HTTP/1.1。

3.Web瀏覽器發送請求頭信息

瀏覽器發送其請求命令之後,還要以頭信息的形式向Web伺服器發送一些別的信息,之後瀏覽器發送了一空白行來通知伺服器,它已經結束了該頭信息的發送。

4.Web伺服器應答

客戶機向伺服器發出請求後,伺服器會客戶機回送應答, HTTP/1.1 200 OK ,應答的第一部分是協議的版本號和應答狀態碼。

5.Web伺服器發送應答頭信息

正如客戶端會隨同請求發送關於自身的信息一樣,伺服器也會隨同應答向用戶發送關於它自己的數據及被請求的文檔。

6.Web伺服器向瀏覽器發送數據

Web伺服器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此為結束,接著,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據。

7.Web伺服器關閉TCP連接

一般情況下,一旦Web伺服器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者伺服器在其頭信息加入了這行代碼:Connection:keep-alive

TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網路帶寬。

練習

我們點擊General -> HTTP Basics ,如圖,官方簡單的闡述了HTTP的概念,說明了這次練習的目標

接下來點擊第二步,頁面中中提示:在輸入欄輸入姓名,然後點擊GO提交。伺服器將接受請求,反轉輸入並將其顯示給用戶,說明處理HTTP請求的基本知識,也可以嘗試使用OWASP ZAP攻擊代理看到HTTP數據。

我們輸入123,點擊GO,如圖,他將我們輸入的字元進行了反轉。(第二步感覺沒啥子卵用哦???)

2綠了之後我們綠3

如上圖所示,他提示我們是需要POST請求還是GET請求,因為點擊提交按鈕屬於POST請求,所以當然是選擇POST啊,而下面需要我們填入的數字,應該在數據包中會有顯示,因此我們設置代理,打開BurpSuite進行抓包,查看是否有magic number的存在。

打開代理和BurpSuite:

在輸入框內填入POST,然後點擊GO。

如圖,抓到了數據包,在數據包內果然有magic number的存在。

這時已經知道magic number為55,關閉抓包按鈕,將55填入第二欄,點擊GO。

如上圖,3綠了,並提示我們成功了。

總結

第一關雖然簡單,但它讓我們明白兩個道理:

1,要有查看數據包內容的習慣,在實際滲透中,一個網頁也許你在表面看不出來啥,但是如果認真查看數據包,也許會得到意想不到的效果。

2,也是最重要的一點,綠了,就代表成功了。

未完待續...

推薦閱讀:

Hacking Team 泄密事件到底有多嚴重?其中說到的那個 Flash 漏洞會造成怎樣的後果?

TAG:Web漏洞 | HTTP | 漏洞 |