在防火墙(WAF)的日益普及中,传统SQL注入方法对于WAF来说往往不太管用,针对此MSSql也采取了更高级的绕过技术。本文将讲解利用MSSql在WAF下实现注入的一些新突破。
首先,我们可以使用MSSql中常见的类型转换来绕过一些WAF防护,比如将“(CHAR(58)+CHAR(113)+CHAR(112)+CHAR(97)+CHAR(100)+CHAR(105)+CHAR(118))”替换为cast(0x584f504449564156 as varchar(8000))。因为MSSql经常将输入数据作为字符串处理,因此我们可以应用类型转换中的函数重新编码,从而达到绕过WAF的目的。
此外,我们还可以采用SSL多协议绕过WAF。这种方案需要将要查询的参数信息编码成密文,然后在SQL中使用密文代替原始文本,绕过防火墙及其它安全层次。例如:
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'SELECT * FROM users WHERE username = '+ EncryptByKey(KEY_GUID('TKey'), @username);EXEC sp_executesql @sql
这里,我们使用MSSql自带的EncryptByKey函数来对用户名进行加密,最终使其能够绕过WAF过滤。
当然,我们还可以用MSSql构造布尔盲注的例子来说明绕过WAF的一些新方式。在这种情况下,可以使用一个主要的SQL语句将数据库表中的某个字段与布尔表达式进行比较,如果比较成功就会产生true,反之则false。这样,通过将waf返回的数据进行分析,我们就可以确定语句是成功执行了:
SELECT * FROM user where id=(CASE WHEN (select top 1 1 from [table] WHERE username = 'admin') is not null
THEN 1 ELSE 2 END );
以上为使用MSSql实现注入绕过WAF的一些新突破。此外,我们还可以使用MSSql强大的函数帮助绕过WAF,比如BINARY,全文搜索函数等等。希望本文的内容能够帮助大家绕过WAF把握当下的安全性技术。
来源地址:利用MSSql绕过WAF的新突破(mssql绕过waf脚本)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^