溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)

發(fā)布時(shí)間:2020-06-17 09:33:07 來(lái)源:網(wǎng)絡(luò) 閱讀:1454 作者:yttitan 欄目:安全技術(shù)

之前曾介紹過(guò),所有的HTTP通信都被構(gòu)造成一對(duì)HTTP請(qǐng)求和HTTP響應(yīng),HTTP協(xié)議的請(qǐng)求與響應(yīng)報(bào)文都是由“首部header”和“主體body”兩部分組成的。其中主體部分是請(qǐng)求和響應(yīng)的數(shù)據(jù),首部部分則規(guī)定了請(qǐng)求和響應(yīng)的內(nèi)容格式。

1.HTTP請(qǐng)求
對(duì)于HTTP請(qǐng)求報(bào)文,主要由三部分組成:請(qǐng)求行、請(qǐng)求頭、請(qǐng)求正文。在請(qǐng)求頭和請(qǐng)求正文之間一般會(huì)有兩個(gè)空行進(jìn)行間隔。
下圖是用Burpsuite截獲的請(qǐng)求報(bào)文。
HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)
HTTP請(qǐng)求報(bào)文的第一行即為請(qǐng)求行,這個(gè)報(bào)文的請(qǐng)求行就是“GET / HTTP/1.1”。
請(qǐng)求行由三部分組成:

  • 第一部分“GET”,表明該請(qǐng)求是采用GET方法;
  • 第二部分“/”,表明請(qǐng)求訪問(wèn)的頁(yè)面,“/”是指網(wǎng)站根目錄,也就是要訪問(wèn)網(wǎng)站的首頁(yè)。它結(jié)合請(qǐng)求頭的Host字段可以組成一個(gè)完整的請(qǐng)求URL:“×××w.51cto.com/”
  • 第三部分“HTTP1.1”,表明所使用的HTTP協(xié)議版本,目前所使用的都是HTTP1.1版本。
    對(duì)于這個(gè)報(bào)文,由于采用的是GET方法,因而沒(méi)有請(qǐng)求正文。從第二行直至最后一行,都屬于是請(qǐng)求頭(也被稱為消息頭),服務(wù)端據(jù)此獲取客戶端的信息。我們應(yīng)當(dāng)熟知請(qǐng)求頭中的內(nèi)容,這在后面會(huì)詳細(xì)介紹。
    請(qǐng)求正文是可選的,它最常出現(xiàn)在POST請(qǐng)求方法中。比如打開(kāi)一個(gè)用戶登錄頁(yè)面,此時(shí)攔截到的HTTP請(qǐng)求就包含完整的三個(gè)組成部分。
    HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)

2.HTTP響應(yīng)
HTTP響應(yīng)報(bào)文總體上也是由三部分組成:響應(yīng)行、響應(yīng)頭、響應(yīng)正文。
下圖是響應(yīng)報(bào)文。
HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)

  • HTTP響應(yīng)的第一行為響應(yīng)行,其中有HTTP版本(HTTP/1.1)、狀態(tài)碼(200)以及消息“OK”。
  • 第二行至末尾的空白行為響應(yīng)頭,由服務(wù)器向客戶端發(fā)送。
  • 響應(yīng)頭之后是響應(yīng)正文,是由服務(wù)器向客戶端發(fā)送的HTML數(shù)據(jù)。
    響應(yīng)報(bào)文中的狀態(tài)碼和響應(yīng)頭都比較重要,這個(gè)在后面也會(huì)詳細(xì)介紹。

3.例題:你必須讓他停下
BugKu http://123.206.87.240:8002/web12/
打開(kāi)網(wǎng)頁(yè)之后,發(fā)現(xiàn)頁(yè)面在不停地刷新。查看源碼,可以發(fā)現(xiàn)是通過(guò)一段Javascript的腳本來(lái)實(shí)現(xiàn)頁(yè)面刷新的。
HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)
根據(jù)頁(yè)面中的提示“Stop at panda ! u will get flag”,再觀察到頁(yè)面每刷新一次,<img>標(biāo)簽中src屬性所指定的圖片來(lái)源也在隨之變化,因而可以推測(cè),當(dāng)顯示到指定的圖片時(shí),就應(yīng)該會(huì)出現(xiàn)flag。但是flag是通過(guò)a標(biāo)簽來(lái)輸出的,a標(biāo)簽又加了一個(gè)style="display:none"的屬性,也就是讓a標(biāo)簽的內(nèi)容不在頁(yè)面上顯示。所以即使刷新到合適的圖片,在頁(yè)面上也看不到flag,而只能通過(guò)源碼查看。
明白了原理之后,接下來(lái)就很簡(jiǎn)單了。我們可以在Burpsuite中通過(guò)Repeater模塊反復(fù)發(fā)送HTTP請(qǐng)求,每次所返回的HTTP響應(yīng)也應(yīng)該是在不斷變化的,而且還可以直接看到響應(yīng)的源碼。果然當(dāng)顯示到10.jpg時(shí),flag就出來(lái)了。
HTTP協(xié)議(5)HTTP請(qǐng)求和響應(yīng)

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI