今天給大家講解的是SQL注入中的http請(qǐng)求頭注入,這種注入方式平時(shí)用的非常多,上次看別人面試時(shí)遇到了,就再來(lái)深究一下,研究其中的原理,利用方式等等
一、HTTP請(qǐng)求頭
1、HTTP介紹
HTTP,超文本傳輸協(xié)議)是訪問(wèn)萬(wàn)維網(wǎng)使用的核心通信協(xié)議,也是今天所有Web應(yīng)用程序使用的通信協(xié)議。最初,HTTP只是一個(gè)為獲取基于文本的靜態(tài)資源而開發(fā)的簡(jiǎn)單協(xié)議,后來(lái)人們以各種形式擴(kuò)展和利用它。使其能夠支持如今常見的復(fù)雜分布式應(yīng)用程序。
HTTP使用一種用于消息的模型:客戶端送出一條請(qǐng)求消息,而后由服務(wù)器返回一條響應(yīng)消息。該協(xié)議基本上不需要連接,雖然HTTP使用有狀態(tài)的TCP協(xié)議作為它的傳輸機(jī)制,但每次請(qǐng)求與響應(yīng)交換都會(huì)自動(dòng)完成,并且可能使用不同的TCP連接。
TCP就是一種傳輸協(xié)議,就像HTTP協(xié)議一樣,HTTP的目的是指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng),而TCP的目的是為了確保數(shù)據(jù)傳輸?shù)目煽啃裕医o你一個(gè)數(shù)據(jù)包,你一定就要收到,收不到的話那么我就會(huì)給你重發(fā),直到我超時(shí)放棄你了。
HTTP是建立在TCP之上的,當(dāng)你建立起TCP連接之后,在上面?zhèn)鬏數(shù)臄?shù)據(jù)用的是HTTP協(xié)議
2、HTTP請(qǐng)求頭介紹
所有HTTP消息(請(qǐng)求與響應(yīng))中都包含一個(gè)或幾個(gè)單行顯示的消息頭(header),然后是一個(gè)強(qiáng)制空白行,最后是消息主體(可選)。以下是一個(gè)典型的HTTP請(qǐng)求:
3、請(qǐng)求方式
GET就是請(qǐng)求方式,那么請(qǐng)求方式有很多種
4、消息頭介紹
GET后面的/代表路徑,HTTP/1.1代表HTTP的版本。
HOST表示請(qǐng)求的服務(wù)器網(wǎng)址
Connection表示持久的客戶端與服務(wù)連接
Cache-Control表示緩存開關(guān)
sec-ch-ua可以理解用來(lái)替代user-agent的,用sec-ch-ua可以防止泄露瀏覽器詳細(xì)信息
sec-ch-ua-mobile表示瀏覽器名稱和版本
sec-ch-ua-platform表示操作系統(tǒng)名稱
Upgrade-Insecure-Requests 請(qǐng)求頭向服務(wù)器發(fā)送一個(gè)客戶端對(duì)HTTPS加密和認(rèn)證響應(yīng)良好,在https頁(yè)面中,如果調(diào)用了http資源,那么瀏覽器就會(huì)拋出一些錯(cuò)誤。為了改變成這一狀況,chrome(谷歌瀏覽器)會(huì)在http請(qǐng)求中加入 ‘Upgrade-Insecure-Requests: 1’ ,服務(wù)器收到請(qǐng)求后會(huì)返回 “Content-Security-Policy: upgrade-insecure-requests” 頭,告訴瀏覽器,可以把所屬本站的所有 http 連接升級(jí)為 https 連接。
User-Agent表示發(fā)出請(qǐng)求的用戶信息
Accept表示指定客戶端能夠接收的內(nèi)容類型
Sec-Fetch-Site表示一個(gè)請(qǐng)求發(fā)起者的來(lái)源與目標(biāo)資源來(lái)源之間的關(guān)系
Sec-Fetch-Mode該請(qǐng)求頭表明了一個(gè)請(qǐng)求的模式
Sec-Fetch-Dest表示請(qǐng)求的目的地,即如何使用獲取的數(shù)據(jù)
Sec-Fetch-User取值是一個(gè)Boolean類型的值,true(?1)表示導(dǎo)航請(qǐng)求由用戶激活觸發(fā)(鼠標(biāo)點(diǎn)擊/鍵盤),false(?0)表示導(dǎo)航請(qǐng)求由用戶激活以外的原因觸發(fā)
Accept-Encoding指定瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類型。
Accept-Language瀏覽器可接受的語(yǔ)言
Cookie 就是一段字符串,是瀏覽器保存服務(wù)器返回?cái)?shù)據(jù)的方法,通常保存用戶身份信息
X-Requested-With用于判斷客戶端請(qǐng)求是那種請(qǐng)求
referrer是HTTP請(qǐng)求header的報(bào)文頭,用于指明當(dāng)前流量的來(lái)源參考頁(yè)面。通過(guò)這個(gè)信息,我們可以知道訪客是怎么來(lái)到當(dāng)前頁(yè)面的。
5、HTTP響應(yīng)
HTTP響應(yīng)是什么意思,當(dāng)我們從瀏覽器發(fā)出請(qǐng)求的時(shí)候,服務(wù)器接收到請(qǐng)求,會(huì)給客戶端進(jìn)行響應(yīng)。那么這個(gè)響應(yīng)就是HTTP響應(yīng)。
那么響應(yīng)重點(diǎn)就是看第一行和響應(yīng)的正文,
第一行HTTP/1.1代表的是HTTP的版本 200 是響應(yīng)碼 OK就代表響應(yīng)成功
響應(yīng)示例中的其他一些要點(diǎn)如下:
Server消息頭中包含一個(gè)旗標(biāo),指明所使用的Web服務(wù)器軟件。有時(shí)還包括其他信息。如所安裝的模塊和服務(wù)器操作系統(tǒng)。其中包含的信息可能并不準(zhǔn)確。
Set-Cookie消息頭向?yàn)g覽器發(fā)送另一個(gè)cookie.它將在隨后向服務(wù)器發(fā)送的請(qǐng)求中由Cookie消息頭返回。
Pragma消息頭指示瀏覽器不要將響應(yīng)保存在緩存中。Expires消息頭指出響應(yīng)內(nèi)容已經(jīng)過(guò)期。因此不應(yīng)保存在緩存中。當(dāng)返回動(dòng)態(tài)內(nèi)容時(shí)常常會(huì)發(fā)送這些指令,以確保瀏覽器隨時(shí)獲得最新內(nèi)容。
Content-Type消息頭示這個(gè)消息主體中包含一個(gè)HTML文檔。
Content-Length消息頭規(guī)定消息主體的字節(jié)長(zhǎng)度。
以下圖就是響應(yīng)正文
二、常見HTTP頭注入
1、UA頭注入
UA頭注入,就是注入HTTP請(qǐng)求頭中的Useragent。那么該怎么進(jìn)行注入呢。如下這個(gè)語(yǔ)句就是一個(gè)常見的UA頭注入方式
User-Agent: ‘ and updatexml(1,concat(’~‘,database()),1) and ’
2、Referer注入
Referer:當(dāng)你訪問(wèn)一個(gè)網(wǎng)站的時(shí)候,你的瀏覽器需要告訴服務(wù)器你是從哪個(gè)地方訪問(wèn)服務(wù)器的。(直接輸入網(wǎng)址或者其他頁(yè)面中的鏈接點(diǎn)進(jìn)來(lái)的)。
注入方式如下
Referer: ‘ and updatexml(1,concat(’~‘,database()),1) and ’
3、Cookie注入
Cookie 就是一段字符串,是瀏覽器保存服務(wù)器返回?cái)?shù)據(jù)的方法,通常保存用戶身份信息。是某些網(wǎng)站為了辨別用戶身份,進(jìn)行Session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密),由用戶客戶端計(jì)算機(jī)暫時(shí)或永久保存的信息
session當(dāng)訪問(wèn)服務(wù)器否個(gè)網(wǎng)頁(yè)的時(shí)候,會(huì)在服務(wù)器端的內(nèi)存里開辟一塊內(nèi)存,這塊內(nèi)存就叫做session,而這個(gè)內(nèi)存是跟瀏覽器關(guān)聯(lián)在一起的。這個(gè)瀏覽器指的是瀏覽器窗口,或者是瀏覽器的子窗口,意思就是,只允許當(dāng)前這個(gè)session對(duì)應(yīng)的瀏覽器訪問(wèn),就算是在同一個(gè)機(jī)器上新啟的瀏覽器也是無(wú)法訪問(wèn)的。而另外一個(gè)瀏覽器也需要記錄session的話,就會(huì)再啟一個(gè)屬于自己的session。也稱為會(huì)話控制。
和上面的語(yǔ)句也差不多
Cookie:user=admin ‘ and updatexml(1,concat(’~‘,database()),1) and ’
原文鏈接:https://blog.csdn.net/qq_63844103/article/details/128625869
-
Web
+關(guān)注
關(guān)注
2文章
1287瀏覽量
71385 -
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
11文章
3339瀏覽量
61449 -
HTTP
+關(guān)注
關(guān)注
0文章
525瀏覽量
33492 -
SQL
+關(guān)注
關(guān)注
1文章
783瀏覽量
45122
發(fā)布評(píng)論請(qǐng)先 登錄
在KaihongOS應(yīng)用開發(fā)中,如何通過(guò)HTTP發(fā)起一個(gè)數(shù)據(jù)請(qǐng)求
離子注入工藝中的重要參數(shù)和監(jiān)控手段

服務(wù)器如何處理 HTTP 請(qǐng)求
HTTP 協(xié)議對(duì)于SEO優(yōu)化的影響
如何調(diào)試 HTTP 請(qǐng)求和響應(yīng)
如何使用 cURL 測(cè)試 HTTP 協(xié)議
HTTP 1.1 和 HTTP 2.0 的區(qū)別
如何使用 HTTP 協(xié)議進(jìn)行數(shù)據(jù)傳輸
HTTP 協(xié)議的工作原理
HTTP 協(xié)議的基本概念
HTTP緩存頭的使用 本地緩存與遠(yuǎn)程緩存的區(qū)別
入門web安全筆記分享

HTTP相關(guān)返回值異常如何解決(上篇)

評(píng)論