WEB滲透漏洞整理之SQL盲注

漏洞等級:高
漏洞風險:會使攻擊者遠程查看、修改或刪除數據庫內條目和表單
N-Base分類:遠程命令執行----SQL注入
漏洞描述
SQL注入是一種WEB程序的漏洞,通過注射,攻擊者可以獲得數據庫中存儲的數據,造成機密數據的外泄。SQL注入攻擊(SQL injection),是發生於應用程序至數據庫層的安全漏洞。簡而言之,是在輸入的數據字符串之中夾帶SQL指令,在安全不達標的程序中,開發者忽略了檢查,那麼這些夾帶進去的指令就會被數據庫服務器誤認爲是正常的SQL指令而運行,導致災難性後果發生。
測試工具:APPSCAN、AWVS、BURP、SQLMAP、PYTHON腳本
實戰案例
SQL注入的威力就不用多說了,實際環境中的SQL注入基本都是盲注,很難找到直接返回查詢結果的傻應用了。
本次提供的一個案例相對來說比較有趣,因爲它存在在登錄頁面。
在這裏插入圖片描述
這個案例的前提是需要一個能正常登錄的測試賬號,任何權限的都可以,注入點就在username參數上,當把test改爲test and 1=1,密碼保持不變時,能夠正常登錄,當把test改爲test and 1=2時,登錄失敗。很明顯這是一個SQL盲注漏洞。當然實際的測試注入的payload的沒有這麼簡單,會有一些特殊符號,這裏爲了方便演示。當把test改爲a or 1=1時,有趣的事情發生了,還是依然可以登錄。
在這裏插入圖片描述
我們可以做什麼?我們可以不用知道任何一個用戶名,用a or 1=1去爆破所有用戶的密碼了。假如這個注入點在password上,那就是另外一個故事了—認證繞過漏洞。可以使用任何用戶名去配a or 1=1的密碼去登錄了。
當然,有人會說,都可以SQL注入了,何不直接提取用戶名密碼,還爆破和什麼勁。哈哈,言之有理,我竟無言以對。
在這裏插入圖片描述
然而,數據庫中的用戶名密碼加密了怎麼辦?????
解決建議
1.過濾特殊字符:| " ’ % ; () & + 等特殊字符;
2.過濾關鍵字:select delete insert and or 等SQL關鍵字;
3.屏蔽服務器返回的錯誤信息。
4.建議編寫統一過濾系統進行過濾。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章