不但可以采用编码改写关键字,还可以采用注释改写关键字,避免正则匹配。例如z.com/index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4 'union%a0select pass from users# 。就是用符号编码代替一部分字母和判定的空格来逃避正则匹配。(selectxxx不会被拦截,因为可能是函数名等。select 空格xxx则一定会被拦截,去掉空格成为绕过的关键)。同样还有针对MYSQL版本的/*!5000union*/系列。
(3).等价替换
等价替换是个比较大的分类,主要可以分为等价函数、等价符号、特殊符号、比较符号等4类。
等价函数,就是同功能函数替换。WAF禁止了一些函数(+微信关注网络世界),但对另外一些函数没有禁止例如 Substring()可以用mid(),substr()这些函数来替换。还将可以采用生僻函数迂回完成原函数的功能,进行WAF关键字绕过。and or 这种关键字在PHP中可以用|| 和&&代替。于是语句id=1 or 1=1就可以写成id=1 || 1=来进行绕过。同样!= 、>、<等都可以代替等号进行绕过。