BSQLinjector是一个Ruby语言编写的SQL盲注工具,它可以从SQL数据库中检索数据实现盲注功能。此工具使用简单,效率更高!建议在将其发送到一个应用程序之前,使用”–test”开关来清楚地查看配置后的负载看起来是什么样的。
sql盲注是什么意思
就是用SQL查询语句去猜解表名、字段、数据等。
盲注和普通的SQL注入原理是一样的,不同在哪里?
普通注入是会显示一些错误信息在页面上给攻击者判断,也就是说它会有多种情况,从而方便攻击者。
而盲注则是只有两种情况,即TRUE和FALSE,这样说并不是很准确,因为SQL查询无非就这两种情况,应该说是盲注的时候你只能得到一个正常的页面或者是什么页面的不存在,甚至你在查询表的记录过程也不会有显示。
SQL盲注是一种SQL注入漏洞,攻击者可以操纵SQL语句,应用会针对真假条件返回不同的值。但是攻击者无法检索查询结果。
由于SQL盲注漏洞非常耗时且需要向Web服务发送很多请求,因而要想利用该漏洞,就需要采用自动的技术。盲注用工具很难进行注入效果仍然不大理想,所以要重视手工注入技巧。
盲注是不能通过直接显示的途径来获取数据库数据的方法。在盲注中,攻击者根据其返回页面的不同来判断信息(可能是页面内容的不同,也可以是响应时间不同)。一般情况下,盲注可分为三类。
Booleanbase
Timebase
Errorbase
sql盲注解决方案
构造SQL查询时,请使用参数化查询、验证输入对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含HTML特殊字符。这些检查或过滤必须在服务器端完成,建议过滤的常见危险字符。
BSQLinjector各功能解析
--file(强制),文件包含有效的HTTP请求和SQL注入点(SQLINJECT)。(--file=/tmp /req.txt)
--pattern(强制),当查询为true时,用于查找的模式。(--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,开启测试模式。不发送请求,仅仅显示完整的有效载荷。
--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官方手机版