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