我们最近升级了我们的安全扫描器,它报告了一个新问题。
推荐的修复方法是什么?(我们恰好在 ACF9 上。)
(另外,如果你有一个针对 CF 的示例漏洞,我将不胜感激。)
Unicode 转换问题
严重性
高的
类型配置
按模块报告脚本 (XSS.script)
描述此页面容易受到各种 Unicode 转换问题的影响,例如最佳匹配映射、超长字节序列、格式错误的序列。
当字符 X 转换为完全不同的字符 Y 时,会发生最佳匹配映射。通常,当字符在 Unicode 和另一种编码之间进行转码时,会发生最佳匹配映射。
超长字节序列(非最短形式)- UTF-8 允许不同的字符表示形式也具有较短的形式。出于安全原因,UTF-8 解码器不得接受长于编码字符所需的 UTF-8 序列。例如,字符 U+000A(换行符)只能以 0x0A 的形式从 UTF-8 流中接受,但不能以以下五种可能的超长形式中的任何一种形式接受:
0xC0 0x8A
0xE0 0x80 0x8A
0xF0 0x80 0x80 0x8A
0xF8 0x80 0x80 0x80 0x8A
0xFC 0x80 0x80 0x80 0x80 0x8A
UNICODE 3.0 要求的格式错误的子序列,并在 Unicode 技术报告 #36 中指出,如果前导字节后跟无效的后继字节,则不应使用它。
影响出现最佳拟合映射时会出现软件漏洞。例如,可以操纵字符以绕过字符串处理过滤器,例如跨站点脚本 (XSS) 或 SQL 注入过滤器、WAF 和 IDS 设备。过长的 UTF-8 序列可能会被滥用来绕过 UTF-8 子字符串测试,这些测试只寻找可能的最短编码。
推荐确定这些 Unicode 转换问题的来源并修复它们。有关更多信息,请参阅下面的网络参考。
参考适用于 Unix/Linux 的 UTF-8 和 Unicode 常见问题解答
影响项目/我的网站门户/
细节
URL 编码的 POST 输入 linkServID 设置为 acu5955%EF%BC%9Cs1%EF%B9%A5s2%CA%BAs3%CA%B9uca5955
问题清单:
Unicode 字符 U+02B9 MODIFIER LETTER PRIME(编码为 %CA%B9)被转换为 U+0027 APOSTROPHE (')
Unicode 字符 U+02B9 MODIFIER LETTER PRIME(编码为 %CA%B9)被转换...(行被截断)
请求标头
得到
/mysite-portal/?display=login&status=failed&rememberMe=0&contentid=&LinkServID=acu5955%1 Cs1es2%BAs3%B9uca5955&returnURL= https://stage-cms.mysite.com/mysite-portal/ HTTP/1.1 参考:https:// stage-cms.mysite.com:443/
连接:保活
接受编码:gzip,deflate
用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
接受: */*
主办方:stage-cms.mysite.com