Skip to content

Commit aab4a89

Browse files
committed
Fixed encoding problems on some tests cases
See owasp-modsecurity/ModSecurity#1156
1 parent c3e867b commit aab4a89

File tree

10 files changed

+83
-48
lines changed

10 files changed

+83
-48
lines changed

transformations/escapeSeqDecode.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@
2525
"input" : "\\a\\b\\f\\n\\r\\t\\v\\?\\'\\\"\\0\\12\\123\\x00\\xff",
2626
"name" : "escapeSeqDecode",
2727
"type" : "tfn",
28-
"output" : "\u0007\b\f\n\r\t\u000b?'\"\\u0000\nS\\u0000ÿ"
28+
"output" : "\u0007\b\f\n\r\t\u000b?'\"\\u0000\nS\\u0000\\xff"
2929
},
3030
{
3131
"ret" : 1,
3232
"type" : "tfn",
3333
"input" : "\\a\\b\\f\\n\\r\\t\\v\\u0000\\?\\'\\\"\\0\\12\\123\\x00\\xff",
3434
"name" : "escapeSeqDecode",
35-
"output" : "\u0007\b\f\n\r\t\u000b\\u0000?'\"\\u0000\nS\\u0000ÿ"
35+
"output" : "\u0007\b\f\n\r\t\u000b\\u0000?'\"\\u0000\nS\\u0000\\xff"
3636
},
3737
{
3838
"input" : "\\8\\9\\666\\xag\\xga\\0123",
3939
"type" : "tfn",
4040
"name" : "escapeSeqDecode",
4141
"ret" : 1,
42-
"output" : "89¶xagxga\n3"
42+
"output" : "89\\xb6\\xag\\xga\\x0a3"
4343
},
4444
{
4545
"output" : "x",

transformations/htmlEntityDecode.json

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,36 @@
1616
{
1717
"ret" : 0,
1818
"type" : "tfn",
19-
"input" : "Test\u0000Case",
19+
"input" : "Test\\u0000Case",
2020
"name" : "htmlEntityDecode",
21-
"output" : "Test\u0000Case"
21+
"output" : "Test\\u0000Case"
2222
},
2323
{
24-
"output" : "\u0000\u0000 \u0000 \u0000d\"&<> ",
24+
"output" : "&#xg;&#Xg;&#xg0;\\u0002g;&#a;\\u0000&#a2;\\u0003a&#a00;\\u0001a0;\na;&foo;",
2525
"ret" : 1,
26-
"name" : "htmlEntityDecode",
27-
"input" : "&#x0;&#X0;&#x20;&#X20;&#0;&#32;\u0000&#100;&quot;&amp;&lt;&gt;&nbsp;",
28-
"type" : "tfn"
26+
"input" : "&#xg;&#Xg;&#xg0;&#X2g;&#a;\\u0000&#a2;&#3a&#a00;&#1a0;&#10a;&foo;",
27+
"type" : "tfn",
28+
"name" : "htmlEntityDecode"
2929
},
3030
{
31-
"output" : "\u0000\u0000 \u0000 \u0000d\"&<> ",
32-
"type" : "tfn",
33-
"input" : "&#x0&#X0&#x20&#X20&#0&#32\u0000&#100&quot&amp&lt&gt&nbsp",
31+
"ret" : 1,
3432
"name" : "htmlEntityDecode",
35-
"ret" : 1
33+
"input" : "&#xg&#Xg&#xg0&#X2g&#a\\u0000&#a2&#3a&#a00&#1a0&#10a&foo",
34+
"type" : "tfn",
35+
"output" : "&#xg&#Xg&#xg0\\u0002g&#a\\u0000&#a2\\u0003a&#a00\\u0001a0\na&foo"
3636
},
3737
{
38-
"output" : "&#xg;&#Xg;&#xg0;\u0002g;&#a;\u0000&#a2;\u0003a&#a00;\u0001a0;\na;&foo;",
39-
"ret" : 1,
40-
"input" : "&#xg;&#Xg;&#xg0;&#X2g;&#a;\u0000&#a2;&#3a&#a00;&#1a0;&#10a;&foo;",
38+
"output" : "\\x00\\x00\\x20\\x20\\x00\\x20\\x00\\x64\"&<>\\xa0",
4139
"type" : "tfn",
42-
"name" : "htmlEntityDecode"
40+
"input" : "&#x0&#X0&#x20&#X20&#0&#32\\u0000&#100&quot&amp&lt&gt&nbsp",
41+
"name" : "htmlEntityDecode",
42+
"ret" : 1
4343
},
4444
{
45+
"output" : "\\x00\\x00\\x20\\x20\\x00\\x20\\x00\\x64\"&<>\\xa0",
4546
"ret" : 1,
4647
"name" : "htmlEntityDecode",
47-
"input" : "&#xg&#Xg&#xg0&#X2g&#a\u0000&#a2&#3a&#a00&#1a0&#10a&foo",
48-
"type" : "tfn",
49-
"output" : "&#xg&#Xg&#xg0\u0002g&#a\u0000&#a2\u0003a&#a00\u0001a0\na&foo"
48+
"input" : "&#x0;&#X0;&#x20;&#X20;&#0;&#32;\\x00&#100;&quot;&amp;&lt;&gt;&nbsp;",
49+
"type" : "tfn"
5050
}
5151
]

transformations/jsDecode.json

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,15 @@
2121
"output" : "Test\u0000Case"
2222
},
2323
{
24-
"output" : "\u0007\b\f\n\r\t\u000b?'\"\u0000\nS\u0000ÿ!!",
25-
"input" : "\\a\\b\\f\\n\\r\\t\\v\\?\\'\\\"\\0\\12\\123\\x00\\xff\\u0021\\uff01",
26-
"name" : "jsDecode",
27-
"type" : "tfn",
28-
"ret" : 1
29-
},
30-
{
31-
"output" : "\u0007\b\f\n\r\t\u000b\u0000?'\"\u0000\nS\u0000ÿ!!",
24+
"input" : "\\\\a\\\\b\\\\f\\\\n\\\\r\\\\t\\\\v\\?\\'\\\"\\0\\12\\123\\x00\\xff",
25+
"output" : "\\a\\b\\f\\n\\r\\t\\v?'\"\\x00\\x0a\\x53\\x00\\xff",
3226
"ret" : 1,
3327
"type" : "tfn",
34-
"input" : "\\a\\b\\f\\n\\r\\t\\v\u0000\\?\\'\\\"\\0\\12\\123\\x00\\xff\\u0021\\uff01",
3528
"name" : "jsDecode"
3629
},
3730
{
38-
"output" : "8966u00agu00gau0zaauz0aaxagxga\n3u00a",
39-
"input" : "\\8\\9\\666\\u00ag\\u00ga\\u0zaa\\uz0aa\\xag\\xga\\0123\\u00a",
31+
"output" : "8966\\x0a\\x00\\x00\\x00\\x0a\\x0a\\x0a3u00a",
32+
"input" : "8966\\x0a\\x00\\x00\\x00\\x0a\\x0a\\x0a3u00a",
4033
"type" : "tfn",
4134
"name" : "jsDecode",
4235
"ret" : 1

transformations/md5.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
{
2424
"output" : "\\xa6\\xe7\\xd3\\xb4o\\xdf\\xaf\\x0b\\xde*\\x1f\\x83*\\x00\\xd2\\xde",
2525
"ret" : 1,
26-
"input" : "\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b",
26+
"input" : "\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08",
2727
"name" : "md5",
2828
"type" : "tfn"
2929
},

transformations/normalisePathWin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
},
1616
{
1717
"type" : "tfn",
18-
"input" : "\\foo\\bar\u0000\\baz",
18+
"input" : "\\foo\\bar\\u0000\\baz",
1919
"name" : "normalisePathWin",
2020
"ret" : 1,
21-
"output" : "/foo/bar\u0000/baz"
21+
"output" : "/foo/bar\\u0000/baz"
2222
},
2323
{
2424
"output" : "x",

transformations/removeNulls.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"ret" : 0
2222
},
2323
{
24-
"input" : "\\0TestCase",
24+
"input" : "\\x00TestCase",
2525
"type" : "tfn",
2626
"name" : "removeNulls",
2727
"ret" : 1,
@@ -30,12 +30,12 @@
3030
{
3131
"output" : "TestCase",
3232
"ret" : 1,
33-
"input" : "Test\\0Case",
33+
"input" : "Test\\x00Case",
3434
"name" : "removeNulls",
3535
"type" : "tfn"
3636
},
3737
{
38-
"input" : "Test\\0\\0Case",
38+
"input" : "Test\\x00\\x00Case",
3939
"type" : "tfn",
4040
"name" : "removeNulls",
4141
"ret" : 1,
@@ -44,14 +44,14 @@
4444
{
4545
"output" : "TestCase",
4646
"ret" : 1,
47-
"input" : "TestCase\\0",
47+
"input" : "TestCase\\x00",
4848
"name" : "removeNulls",
4949
"type" : "tfn"
5050
},
5151
{
5252
"output" : "TestCase",
5353
"type" : "tfn",
54-
"input" : "\\0Test\\0Case\\0",
54+
"input" : "\\x00Test\\x00Case\\x00",
5555
"name" : "removeNulls",
5656
"ret" : 1
5757
}

transformations/sha1.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44
"input" : "",
55
"name" : "sha1",
66
"ret" : 1,
7-
"output" : "Ú9£î^kK\r2U¿ï•`\u0018¯Ø\u0007\t"
7+
"output" : "\\xda\\x39\\xa3\\xee\\x5e\\x6b\\x4b\\x0d\\x32\\x55\\xbf\\xef\\x95\\x60\\x18\\x90\\xaf\\xd8\\x07\\x09"
8+
},
9+
{
10+
"type" : "tfn",
11+
"input" : "TestCase",
12+
"name" : "sha1",
13+
"ret" : 1,
14+
"output" : "\\xa7\\x0c\\xe3\\x83\\x89\\xe3\\x18\\xbd\\x2b\\xe1\\x8a\\x01\\x11\\xc6\\xdc\\x76\\xbd\\x2c\\xd9\\xed"
15+
},
16+
{
17+
"type" : "tfn",
18+
"input" : "\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08",
19+
"name" : "sha1",
20+
"ret" : 1,
21+
"output" : "\\x63\\xbf\\x60\\xc7\\x10\\x5a\\x07\\xa2\\xb1\\x25\\xbb\\xf8\\x9e\\x61\\xab\\xda\\xbc\\x69\\x78\\xc2"
822
}
923
]

transformations/urlDecode.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"input" : "+%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f%20%21%22%23%24%25%26%27%28%29%2a%2b%2c%2d%2e%2f%30%31%32%33%34%35%36%37%38%39%3a%3b%3c%3d%3e%3f%40%41%42%43%44%45%46%47%48%49%4a%4b%4c%4d%4e%4f%50%51%52%53%54%55%56%57%58%59%5a%5b%5c%5d%5e%5f%60%61%62%63%64%65%66%67%68%69%6a%6b%6c%6d%6e%6f%70%71%72%73%74%75%76%77%78%79%7a%7b%7c%7d%7e%7f%80%81%82%83%84%85%86%87%88%89%8a%8b%8c%8d%8e%8f%90%91%92%93%94%95%96%97%98%99%9a%9b%9c%9d%9e%9f%a0%a1%a2%a3%a4%a5%a6%a7%a8%a9%aa%ab%ac%ad%ae%af%b0%b1%b2%b3%b4%b5%b6%b7%b8%b9%ba%bb%bc%bd%be%bf%c0%c1%c2%c3%c4%c5%c6%c7%c8%c9%ca%cb%cc%cd%ce%cf%d0%d1%d2%d3%d4%d5%d6%d7%d8%d9%da%db%dc%dd%de%df%e0%e1%e2%e3%e4%e5%e6%e7%e8%e9%ea%eb%ec%ed%ee%ef%f0%f1%f2%f3%f4%f5%f6%f7%f8%f9%fa%fb%fc%fd%fe%ff",
2626
"name" : "urlDecode",
2727
"ret" : 1,
28-
"output" : " \\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
28+
"output" : " \\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f \\x21\\x22\\x23\\x24\\x25\\x26\\x27\\x28\\x29\\x2a\\x2b\\x2c\\x2d\\x2e\\x2f\\x30\\x31\\x32\\x33\\x34\\x35\\x36\\x37\\x38\\x39\\x3a\\x3b\\x3c\\x3d\\x3e\\x3f\\x40\\x41\\x42\\x43\\x44\\x45\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\\x50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58\\x59\\x5a\\x5b\\x5c\\x5d\\x5e\\x5f\\x60\\x61\\x62\\x63\\x64\\x65\\x66\\x67\\x68\\x69\\x6a\\x6b\\x6c\\x6d\\x6e\\x6f\\x70\\x71\\x72\\x73\\x74\\x75\\x76\\x77\\x78\\x79\\x7a\\x7b\\x7c\\x7d\\x7e\\x7f\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d\\x8e\\x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9d\\x9e\\x9f\\xa0\\xa1\\xa2\\xa3\\xa4\\xa5\\xa6\\xa7\\xa8\\xa9\\xaa\\xab\\xac\\xad\\xae\\xaf\\xb0\\xb1\\xb2\\xb3\\xb4\\xb5\\xb6\\xb7\\xb8\\xb9\\xba\\xbb\\xbc\\xbd\\xbe\\xbf\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd7\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff"
2929
},
3030
{
3131
"output" : "Test Case",

0 commit comments

Comments
 (0)