在防火墙(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掌控当下的安全性技术。
本文来源:https://www.yuntue.com/post/86442.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏