天天看點

【SQL注入】Header注入:基礎知識、原理、利用

目錄

​​一、基礎知識​​

​​Header頭​​

​​示例:​​

​​常見的請求頭參數​​

​​二、Header注入​​

​​注入原理:​​

​​注入地方:​​

​​簡介:​​

​​注入流程:​​

​​payload:​​

一、基礎知識

Header頭

HTTP消息包括:客戶機向伺服器的請求消息(Request)和伺服器向客戶機的響應消息(Response)(由一個起始行,一個或者多個頭域,一個隻是頭域結束的空行和可選的消息體組成)

HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分,

HTTP消息頭支援自定義

每個頭域由一個域名(大小寫無關),冒号(:)和域值三部分組成,域值前可以添加任何數量的空格符,頭域可以被擴充為多行,在每行開始處,使用至少一個空格或制表符

示例:

POST /sqli-labs-master/Less-18/ HTTP/1.1

Host: localhost:8080

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Referer: http://localhost:8080/sqli-labs-master/Less-11/

Content-Type: application/x-www-form-urlencoded

Content-Length: 94

Origin: http://localhost:8080

Connection: close

Cookie: UM_distinctid=1801d57ba0c6c-0ea17069b11c2e8-4c3e2c73-144000-1801d57ba0f2b2; CNZZDATA1263804910=973780364-1649755840-null%7C1649824812; WSTMART_loginName=huaguoshan; WSTMART_loginPwd=%B3%A8%A3%DC%7Dus%DC%7F%A9r%A8%80x%85%95%93z%8A%9C%8C%A6%9B%9A%BC%9A%A6%D0%7Fz%C5h%B4%96%AC%D0%7Ec%7F%DD%8C%D2%8Ab%8D%85z%CA%87%A3%7Da%81%B9%85%9E%BBb%AD%98%8C%A3%B3k%B4%AB%AF%DE%8A%85%87%99%80%B9%98%AA%80%85%7D%97%86%8A%9B%60%7F%A6%9B%9C%B0t%CF%9A%7Fz%ABk%B3%CE%B3%DE; WSTMART_history_goods=think%3A%5B%2282%22%5D; _octo=GH1.1.1176236109.1654067901; tz=Asia%2FShanghai; PHPSESSID=sm2uedtp0gbr0g6bmcv11k1kb6

Upgrade-Insecure-Requests: 1

Sec-Fetch-Dest: document

Sec-Fetch-Mode: navigate

Sec-Fetch-Site: same-origin

Sec-Fetch-User: ?1

Pragma: no-cache

Cache-Control: no-cache

常見的請求頭參數

Header解釋示例Accept指定用戶端能夠接收的内容類型Accept: text/plain, text/htmlAccept-Charset浏覽器可以接受的字元編碼集。Accept-Charset: iso-8859-5Accept-Encoding指定浏覽器可以支援的web伺服器傳回内容壓縮編碼類型。Accept-Encoding: compress, gzipAccept-Language浏覽器可接受的語言Accept-Language: en,zhAccept-Ranges可以請求網頁實體的一個或者多個子範圍字段Accept-Ranges: bytesAuthorizationHTTP授權的授權證書Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==Cache-Control指定請求和響應遵循的緩存機制Cache-Control: no-cacheConnection表示是否需要持久連接配接。(HTTP 1.1預設進行持久連接配接)Connection: closeCookieHTTP請求發送時,會把儲存在該請求域名下的所有cookie值一起發送給web伺服器。Cookie: $Version=1; Skin=new;Content-Length請求的内容長度Content-Length: 66Content-Type請求的與實體對應的MIME資訊Content-Type: application/x-www-form-urlencodedDate請求發送的日期和時間Date: Tue, 15 Nov 2010 08:12:31 GMTExpect請求的特定的伺服器行為Expect: 100-continueFrom送出請求的使用者的EmailFrom: [email protected]指定請求的伺服器的域名和端口号Host: www.zcmhi.comIf-Match隻有請求内容與實體相比對才有效If-Match: “737060cd8c284d8af7ad3082f209582d”If-Modified-Since如果請求的部分在指定時間之後被修改則請求成功,未被修改則傳回304代碼If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMTIf-None-Match如果内容未改變傳回304代碼,參數為伺服器先前發送的Etag,與伺服器回應的Etag比較判斷是否改變If-None-Match: “737060cd8c284d8af7ad3082f209582d”If-Range如果實體未改變,伺服器發送用戶端丢失的部分,否則發送整個實體。參數也為EtagIf-Range: “737060cd8c284d8af7ad3082f209582d”If-Unmodified-Since隻在實體在指定時間之後未被修改才請求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMTMax-Forwards限制資訊通過代理和網關傳送的時間Max-Forwards: 10Pragma用來包含實作特定的指令Pragma: no-cacheProxy-Authorization連接配接到代理的授權證書Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==Range隻請求實體的一部分,指定範圍Range: bytes=500-999Referer先前網頁的位址,目前請求網頁緊随其後,即來路Referer: http://www.zcmhi.com/archives/71.htmlTE用戶端願意接受的傳輸編碼,并通知伺服器接受接受尾加頭資訊TE: trailers,deflate;q=0.5Upgrade向伺服器指定某種傳輸協定以便伺服器進行轉換(如果支援)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11User-AgentUser-Agent的内容包含送出請求的使用者資訊User-Agent: Mozilla/5.0 (Linux; X11)Via通知中間網關或代理伺服器位址,通信協定Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)Warning關于消息實體的警告資訊Warn: 199 Miscellaneous warning

二、Header注入

注入原理:

預定義變量 : $_get (擷取GET的傳參)、$_post(擷取POST傳參)、$_cookie(擷取COOKIE的值) 、$_SERVER(包含了諸如頭資訊(header)、路徑(path)、以及腳本位置(script locations)等等資訊的數組)等

header注入可以了解為:利用後端驗證用戶端口資訊(比如常用的cookie驗證)或者通過Header中擷取用戶端的一些資訊,通過對頭部資訊字段的修改注入,又因為背景沒有進過相對應的資訊處理是以構成了sql注入,完成對資料庫的滲透

注入地方:

簡介:

Header中各種參數中都可以嘗試注入,例如User-Agent、Referer、IP、cookie注入或者其他參數注入

注入流程:

暴力破解----尋找注入點-------字段注入--------擷取資料

暴力破解:平台中有大量的賬号,獲得平台的賬号密碼(其實一般可以自己注冊一個)

尋找注入點:突破口(過濾不嚴謹的地方)

字段注入:将構造的payload帶入資料庫中

payload: