MSSQL 的时间盲注攻击研究

MSSQL时间盲注攻击研究

MySQL服务器作为一种经常使用的数据库,具有广泛的利用场景,特别是企业网站、个人网站等,常常会使用MSSQL服务器作为其主要的数据库。但是,MSSQL数据库也会面临一类特殊的攻击手段,即时间盲注攻击。

时间盲注攻击是一类特殊的攻击,它通过注入歹意SQL语句来估计数据库的响应时间,从而肯定数据库中的信息,乃至是建立完全的数据库。

在MSSQL数据库中,时间盲注攻击主要分为两种:精确时间盲注和模糊时间盲注。前者通过在SQL语句中带有时间比较表达式来计算响应时间,从而估计数据库安全属性;而后者则是攻击者通过模糊SQL语句来肯定,如果时间返回超过了攻击者设定的阈值,则表示攻击失败,反之则表示攻击成功。

下面是一段经典的用于履行时间盲注攻击的MSSQL语句:

-- 带有时间比较的MSSQL语句
IF (SUBSTRING(@@VERSION,1,1) = \'1\' AND
(SELECT COUNT(*) FROM T WHERE UID = \'Guest\') != 0)
WaitFor Delay \'0:0:15\'

上面的语句先检查数据库的版本号,如果是1x版本,则会履行“WaitFor Delay ‘0:0:15’”语句,其中注入者设定超时时间为15秒,用于检测会不会有特定UID存在数据库中.

为了避免MSSQL数据库遭受时间盲注攻击,建议使用限制超时操作或SQL监控解决方案,预防攻击者通过时间延迟注入攻击。另外,建议数据库管理者对数据库中的权限设置进行加固,以免代码暴露在网络上,遭到时间盲注攻击。

阅读剩余
THE END