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,也是最重要的一點,綠了,就代表成功了。
未完待續...
推薦閱讀: