1.注入攻擊本質:使用者輸入的資料當做**去執行
2.條件:
使用者可以控制輸入
原本程式要執行的**,拼接了使用者的內容,然後執行了
3.定義:
盲注對應的是顯錯注入。但是很多時候,web伺服器關閉了錯誤回顯,這時候我們就無法實行sql注入了嗎?明顯不是這樣的。
盲注在伺服器沒有回顯的時候完成了注入攻擊,由於沒有錯誤回顯,對於攻擊者來說,就缺少了「除錯資訊」
4.分類:
布林盲注[true,false]
根據注入資訊返回true和false,也就沒有了之前的報錯資訊
時間盲注
介面返回值只有一種true,無論輸入任何值,返回情況都會按正常的情況來處理。假如特定的時間函式,通過檢視web頁面返回的時間差來判斷注入的語句是否正常。
1.length() 返回字串的長度
應用:select length(database());//獲取當前資料庫名的長度
應法:url id=1 and length(database())=12 //判斷資料庫名的名長度是否是12位。不是就來回換,(用二分法猜測)
2.substr() 擷取字串
用法:substr(操作的字串,第幾位開始,分割幾位)
應用:select substr(database(),1,1)// 擷取當前資料庫名的第一位
3.ascii()
用法:select ascii(『n』)//返回110,這是n的ascii編碼
應用:where id=1 and ascii(substr(database(),1,1))>120
//判斷當資料庫名的第乙個字元的ascii是否大於120
//利用二分法就能判斷出資料庫名的第乙個字元和整個資料庫名
4.補充:手工很累,可以利用burp的爆破功能,很快就可以爆出當前資料庫的名稱。這就是盲注的原理,後邊基本都一樣
sqlmap跑盲注如果沒跑出來,可能是等級的問題,提高測試等級試試
sqlmap -u 「url」 --level 3
如果知道格式,可以手動幫助閉合
sqlmap -u 「url」 " //這個額外的"出錯可以換成url編碼試試(%22)直接補充"
因為無法閉合造成問題
改為:sqlmap -u url%22 或者 sqlmap -u 「url」%22
***補充:清理sqlmap的快取,–flush-session
1.前言
有的頁面,輸入and 1=1正常,但是and 1=2也正常,就代表沒有注入嗎?有可能存在延時注入,因為伺服器有可能有過濾功能,不管你輸入什麼都給你過濾掉。
2.注釋問題:
web安全入門(第四章 4)盲注注入
一 盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成的注入攻擊。伺服器沒有錯誤回顯,對於攻擊者來說缺少了非常重要的 除錯資訊 布林盲注 布林很明顯trup跟fales,也就是說他只會根據你的諸如資訊 返回trup跟fales,也就沒有了之前的報錯資訊。時間盲注 介面返回值只有一種,trup無論輸...
網路安全零基礎入門(第十一章)SRC的挖掘
每日一句 學習如逆水行舟,不進則退 本篇內容 方向資訊收集 常見漏洞 小技巧論壇 補充滲透的核心在於挖掘漏洞 黑客的核心才在於拿下 違法 滲透測試是有尺度的,且行且珍惜很多同學有一定安全能力後,不知道幹嘛?答 去挖漏洞 為什麼要挖漏洞?答 增加實戰經驗,找工作的加分點 如何更好挖掘?答 往下看!最後...
web安全入門(第五章 2 偏移注入
一 偏移注入使用場景 早sql注入得時候會遇到一些無法查詢列名得問題,比如系統自帶資料庫的 許可權不夠而無法訪問系統自帶庫。或者遇到access資料庫 當你猜到表名無法猜到欄位名的情況下,我們可以使用偏移注入來查詢那張表裡面的資料。向sqlmap之類的工具實際上是爆破欄位名的名字,但是如果欄位名稱比...