CSS 解码
AWS WAF解码使用 CSS 2.x 转义规则编码的字符
syndata.html#characters
。此函数在解码过程中最多使用两个字节,因此它可以帮助发现使用 CSS 编码而通常不会被编码的 ASCII 字符。它也可用于反规避,规避是反斜杠和非十六进制字符的组合。例如,
javascript
使用
ja\vascript
。
转义序列解码
AWS WAF解码以下 ANSI C 转义序列:
\a, \b,
\f, \n, \r, \t, \v, \\, \?, \', \", \xHH (hexadecimal), \0OOO
(octal)
。无效的编码保留在输出中。
十六进制解码
AWS WAF将一串十六进制字符解码为二进制。
HTML 实体解码
AWS WAF 将 HTML 编码的字符替换为未编码的字符:
JS 解码
AWS WAF解码JavaScript转义序列。如果
\uHHHH
代码在全角 ASCII 代码范围内
FF01-FF5E
,则使用较高的字节来检测和调整较低的字节。如果不是,则仅使用较低的字节,将较高的字节归零,从而可能导致信息丢失。
AWS WAF 将大写字母 (A-Z) 转换为小写字母 (a-z)。
AWS WAF根据输入中的数据计算 MD5 哈希。计算的哈希是原始二进制形式。
AWS WAF检查收到的 Web 请求,不进行任何文本转换。
标准化路径
AWS WAF从输入字符串中删除不在输入开头的多个斜杠、目录自引用和目录反向引用。
正常化路径获胜
AWS WAF像这样处理
NORMALIZE_PATH
,但首先将反斜杠字符转换为正斜杠。
AWS WAF移除所有
NULL
来自输入的字节。
AWS WAF用单个空格替换 C 风格注释 (/*... */) 的每次出现。它不会压缩连续出现的多个事件。它用空格(ASCII 0x20)替换未结尾的注释。它不会改变评论的独立终止 (*/)。
AWS WAF取代
NULL
输入中包含空格字符 (ASCII 0x20) 的字节。
SQL 十六进制解码
AWS WAF解码 SQL 十六进制数据。例如,(
0x414243
) 被解码为 (
ABC
)。
URL decode
AWS WAF解码 URL 编码的值。
URL 解码单元
像
URL_DECODE
,但支持微软专用
%u
编码。如果代码在
FF01-FF5E
的全角 ASCII 码范围内,则较高的字节用于检测和调整较低的字节。否则,仅使用较低的字节,将较高的字节归零。