sql深盲注入技术(deep blind sql injection)

sql深盲注入技术(deep blind sql injection)

ID:6777985

大小:38.00 KB

页数:2页

时间:2018-01-25

sql深盲注入技术(deep blind sql injection)_第1页
sql深盲注入技术(deep blind sql injection)_第2页
资源描述:

《sql深盲注入技术(deep blind sql injection)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQL深盲注入技术(DeepBlindSQLInjection)SQL深盲注入技术已在多篇文章中被描述.如果注入点是完全盲目的,那么提取数据库数据的唯一方法就是基于时间差的攻击,比如WAITFORDELAY,BENCHMARK等等.现在已知有2种方法来读取数据,1.逐字节读取数据2.在字符模式下通过二进制搜索算法来读取数据    这2种方法都有“一个请求-一个响应”的限制,并且平均每一个字符需要发送6个请求给服务器。在深盲SQL注入中读取数据比传统盲注更加复杂,但是,它仍然是有可能获取数据的,而且发送给服务器的请

2、求数有可能会减少66%,因为获取每个字符只需要发送2次请求而不是6次。  深盲SQL注入在MSSQL服务器上工作良好,也可能可以工作在其它数据库上,比如ORACLE,PostgreSQL等等。  这种一个请求收到多个响应的注入方式是基于时间差来完成的。例如,如果字符的前半字节是6,那么数据库将等待12秒,如果后半字节是1的话将等待2秒。攻击者应该储存服务器的响应次数并且把响应以每2次为单位进行分割来理解。结果,在2个请求中我们得到0x61,也就是'a'。很明显,根据情况使用比2更大或者更小的单位来分割响应信息也是

3、可以的。实例对SQL服务器攻击的一个功能部分:程序代码程序代码DECLARE@xasint;DECLARE@waschar(6);SET@x=ASCII(SUBSTRING(master.dbo.fn_varbintohexstr(CAST({QUERY}  asvarbinary(8000))),{POSITION},1));IF@x>97SET@x=@x-87ELSESET@x=@x-48;SET@w='0:0:'+CAST(@x*{SECONDS}aschar);WAITFORDELAY@w{QUERY}是

4、你想获得的数据这些数据可以使变量比如USER,函数比如db_name(2)或者是返回一行和一列的Select声明。{POSITION}是欲读取的半字节。你需要添加2来替换SQL服务器响应开始部分字串的“0x”。{SECONDS}是等待时间的乘数。等待时能以毫秒计,但是也可以使用分数计算比如等待延时'0:0:0.51'。相同的代码可以以不同的方式表达,有少许不同、更短但是更难读。程序代码程序代码DECLARE@xasint;DECLARE@waschar(6);SET@x=ASCII(SUBSTRING(maste

5、r.dbo.fn_varbintohexstr(CAST({QUERY}asvarbinary(8000))),{POSITION},1));SET@w='0:0:'+CAST(((@x+((@x&79)/8)+(@x/64)&15)*2)aschar);WAITFORDELAY@w实际攻击总的来说深盲SQL攻击还是不适合手动攻击,明智的做法是采用自动攻击,这些功能已经在“BSQLHacker”得以实现。限制•  如果连接时间太慢或者其它的原因导致服务器不可预知的响应次数,软件将不稳定•  大多数的服务器脚本和数

6、据库连接都有大约30秒的连接超时限制(虽然对于使用2元2次乘法(?)来枚举一个半字节来说30秒钟已经足够,但是为了增加在其它环境中结果的稳定性,可能需要更长的超时限制,一般建议设置为60秒)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。