BSQLinjector是一個Ruby語言編寫的SQL盲注工具,它可以從SQL數據庫中檢索數據實現盲注功能。此工具使用簡單,效率更高!建議在將其發(fā)送到一個應用程序之前,使用”–test”開關來清楚地查看配置后的負載看起來是什么樣的。
sql盲注是什么意思
就是用SQL查詢語句去猜解表名、字段、數據等。
盲注和普通的SQL注入原理是一樣的,不同在哪里?
普通注入是會顯示一些錯誤信息在頁面上給攻擊者判斷,也就是說它會有多種情況,從而方便攻擊者。
而盲注則是只有兩種情況,即TRUE和FALSE,這樣說并不是很準確,因為SQL查詢無非就這兩種情況,應該說是盲注的時候你只能得到一個正常的頁面或者是什么頁面的不存在,甚至你在查詢表的記錄過程也不會有顯示。
SQL盲注是一種SQL注入漏洞,攻擊者可以操縱SQL語句,應用會針對真假條件返回不同的值。但是攻擊者無法檢索查詢結果。
由于SQL盲注漏洞非常耗時且需要向Web服務發(fā)送很多請求,因而要想利用該漏洞,就需要采用自動的技術。盲注用工具很難進行注入效果仍然不大理想,所以要重視手工注入技巧。
盲注是不能通過直接顯示的途徑來獲取數據庫數據的方法。在盲注中,攻擊者根據其返回頁面的不同來判斷信息(可能是頁面內容的不同,也可以是響應時間不同)。一般情況下,盲注可分為三類。
Booleanbase
Timebase
Errorbase
sql盲注解決方案
構造SQL查詢時,請使用參數化查詢、驗證輸入對用戶輸入的數據進行全面安全檢查或過濾,尤其注意檢查是否包含HTML特殊字符。這些檢查或過濾必須在服務器端完成,建議過濾的常見危險字符。
BSQLinjector各功能解析
--file(強制),文件包含有效的HTTP請求和SQL注入點(SQLINJECT)。(--file=/tmp /req.txt)
--pattern(強制),當查詢?yōu)閠rue時,用于查找的模式。(--pattern= truestatement)
--prepend(強制),主要載荷。(--prepend=”abcd'and'a'='b'+union+select+' truestatement'+from+table+where+col% 3d'value'+and+substr(password,”
--append,如何結束我們的有效載荷。例如,注釋掉剩下的SQL語句。(--append= '#
--2ndfile,文件包含有效的HTTP請求,用于二次利用。(--2ndfile=/tmp/2ndreq.txt)
--mode,使用盲模式(在-b(產生少量請求),更少-a(通過使用"<"、">"、"="字符產生更少請求),like -l(完全強制),equals –e(完全強制))。(--mode=l)
--hex,使用十六進制進行比較,而不是字符。
--case,大小寫敏感。
--ssl,使用SSL。
--proxy,使用的代理。(--proxy=127.0.0.1:8080)
--test,開啟測試模式。不發(fā)送請求,僅僅顯示完整的有效載荷。
--comma,編碼逗號。
--bracket,向substring函數末尾添加括號。--bracket=”))”
--schar,在字符周圍放置的字符。在十六進制模式下不使用這個字符。(--schar=”’”)
--special,在枚舉中包含所有的特殊字符。
--start,從特定的字符開始枚舉。(--start=10)
--max,枚舉的最大字符數量。(--max=10)
--timeout,等待響應的超時時間。(--timeout=20)
--verbose,顯示詳細信息。
使用舉例
ruby ./BSQLinjector.rb --pattern=truestatement --file=/tmp/req.txt --prepend="abcd'and'a'='b'+union+select+'truestatement'+from+table+where+col%3d'value'+and+substr(password," --append="'#" --ssl
- PC官方版
- 安卓官方手機版
- IOS官方手機版