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

服務器如何處理 HTTP 請求
HTTP 協(xié)議對于SEO優(yōu)化的影響
如何調(diào)試 HTTP 請求和響應
如何使用 cURL 測試 HTTP 協(xié)議
HTTP 1.1 和 HTTP 2.0 的區(qū)別
如何使用 HTTP 協(xié)議進行數(shù)據(jù)傳輸
HTTP 協(xié)議的工作原理
HTTP 協(xié)議的基本概念
HTTP緩存頭的使用 本地緩存與遠程緩存的區(qū)別
HTTP相關(guān)返回值異常如何解決(上篇)

評論