【转载】bypass云锁+iis
本次的环境为aspx+mssql+云锁的注入测试
首先测试云锁对单引号不敏感,这确实给与了很大的便利
云锁对union+select,select+from,dbo.sysdatabases等组合会进行拦截
云锁对块注释内的内容不作拦截
云锁对内联注释内的内容作拦截
云锁对行注释后的内容不作拦截
云锁对--+%0a组合后的内容作拦截(%0a为换行,换到下一行的sql语句就不会被注释,常被用来欺骗waf)
dbo.sysdatabases很容易过,换成..sysdatabases就好了,比如使用master..sysdatabases来查询数据库是不会有问题的
基于行注释绕过
注释换行大法好
有人可能会问了,在上面的时候我测试了--+%0a不是会被拦截么,难不成像测试安全狗时往注释和%0a之间上如干扰字符来进行绕过么,NO!首先,我们得知道%0a并不是唯一的换行符,还有%0d也是可以用的,经过测试发现安全狗对--+%0d后面的内容不作拦截,我都不懂说啥好...
内联注释法
在mysql中有一个内联注释/*!这里面是注释*/,由于我们测试的是mssql,内联注释对其不起作用,但是云锁却会去识别其中的内容,就可以造成绕过。比如使用/*!--+*/,云锁看到内联注释会去检测里面的内容,但它发现是一个注释,它会认为后面的内容被注释掉的,就不再检测了,但是由于我们的数据库是mssql,所以就可以绕过
当然使用/!%23/也是可以的
别名注释法
在sql查询中我们可以为查询的内容指定一个别名,相当于一个临时的名字,而在mssql中#并不是它的注释符,由于union+select组合也会拦截但是拦截力度不高,可以使用内联注释中放入字母造成绕过,所以就有了以下这条思路,将别名设置为#号
当然设置为--+也是可以的,不过要加上双引号
基于块注释绕过
别名注释法
和上面的一样,别名设置为/*然后在注释后面加*/伪造成注释,让云锁以为中间的内容是不生效的从而造成绕过
最后
此篇文章记录于去年,没啥技术含量,大佬轻喷,小弟拜过
PS:在实战测试中我好像碰到/--+/没绕过结合参数污染?id=/%23--+&id=aaa/绕过的情况,此篇文章只是参考