修复 ColdFusion 中的 Unicode 转换问题/漏洞

2024-03-05

我们最近升级了安全扫描仪,它报告了一个新问题。

建议的修复方法是什么? (我们碰巧在 ACF9。)

(另外,如果您有针对 CF 的漏洞利用示例,我将不胜感激。)


Unicode transformation issues

Severity

High

Type

配置

Reported by module

脚本(XSS.script)

Description

此页面容易受到各种 Unicode 转换问题的影响 例如最佳拟合映射、超长字节序列、格式错误 序列。

当角色 X 转换为时,就会发生最佳拟合映射 一个完全不同的字符 Y。一般来说,最佳拟合映射 当字符在 Unicode 和其他字符之间转码时发生 编码。

超长字节序列(非最短形式)- UTF-8 允许 字符的不同表示也有更短的 形式。出于安全原因,UTF-8 解码器不得接受 长度超过字符编码所需长度的 UTF-8 序列。例如,字符 U+000A(行 feed)必须仅以以下形式从 UTF-8 流接受: 0x0A,但不属于以下五种可能的超长中的任何一种 形式:

  • 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,如果前导字节后跟 无效的后继字节,那么它不应该消耗它。

Impact

当出现最佳匹配映射时,就会出现软件漏洞。为了 例如,可以操纵字符来绕过字符串处理 过滤器,例如跨站脚本 (XSS) 或 SQL 注入过滤器, WAF 和 IDS 设备。过长的 UTF-8 序列可能被滥用 绕过仅查找最短可能的 UTF-8 子字符串测试 编码。

Recommendation

确定这些 Unicode 转换问题的根源并修复它们。 请参阅下面的网络参考以获取更多信息。

References

统一码 安全 http://www.blackhat.com/presentations/bh-usa-09/WEBER/BHUSA09-Weber-UnicodeSecurityPreview-PAPER.pdf

UTF-8 和 Unicode 常见问题解答 Unix/Linux http://www.cl.cam.ac.uk/%7Emgk25/unicode.html

PHP 上的几个 unicode 问题 火狐浏览器 http://sirdarckcat.blogspot.ro/2009/10/couple-of-unicode-issues-on-php-and.html http://www.unicode.org/reports/tr36/

统一码 安全考虑 http://www.unicode.org/reports/tr36/

Affecteditems

/我的网站门户/

Details

URL 编码的 POST 输入 linkServID 设置为 acu5955%EF%BC%9Cs1%EF%B9%A5s2%CA%BAs3%CA%B9uca5955

问题清单:

  • Unicode 字符 U+02B9 MODIFIER LETTER PRIME(编码为 %CA%B9) 被转换为 U+0027 撇号 (')

  • Unicode 字符 U+02B9 MODIFIER LETTER PRIME(编码为 %CA%B9) 被传输...(行被截断)

请求标头

GET

/mysite-portal/?display=登录状态=失败记住Me=0&contentid=&LinkServID=acu5955%1 Cs1es2%BAs3%B9uca5955 返回URL=https://stage-cms.mysite.com/mysite-portal/ https://stage-cms.mysite.com/mysite-portal/HTTP/1.1 引用者:https://stage-cms.mysite.com:443/ https://stage-cms.mysite.com:443/

连接:保持活动状态

接受编码:gzip、deflate

用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64; 三叉戟/5.0)

接受: */*

主机:stage-cms.mysite.com


答案是:规范化。

https://www.owasp.org/index.php/Canonicalization,_locale_and_Unicode#How_to_protect_yourself https://www.owasp.org/index.php/Canonicalization,_locale_and_Unicode#How_to_protect_yourself

如何保护自己

应选择合适的规范形式,并且所有用户输入 在做出任何授权决定之前将其规范化为该形式 执行。 UTF-8解码后应进行安全检查 完成了。此外,建议检查UTF-8 编码是其所代表的符号的有效规范编码。

http://www.mattgifford.co.uk/canonicalize-method-in-coldfusion-8-and-coldfusion-9 http://www.mattgifford.co.uk/canonicalize-method-in-coldfusion-8-and-coldfusion-9

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复 ColdFusion 中的 Unicode 转换问题/漏洞 的相关文章

  • Scala 中使用转义特殊字符解码字符串问题

    我有一个多行 JSON 文件 其中包含编码为十六进制的特殊字符的记录 以下是单个 JSON 记录的示例 x22value x22 x22 xC4 xB1arines Bint xC4 xB1 xC3 xA7 Ramu xC3 xA7lar
  • 检测日语字符输入和“Romajis”(ASCII)

    我希望能够检测到用户何时 输入日语字符 汉字或假名 输入罗马字符 仅限 目前我正在使用这样的 ASCII 范围 C 语法 string searchKeyWord Console ReadLine var romajis from c in
  • 身份验证中的随机数使用

    在基于摘要的身份验证中 随机数由服务器生成 然而 在基于 OAuth 的身份验证中 随机数是由客户端生成的 我想知道是否有人知道差异的原因 随机数用于使请求唯一 在没有随机数的身份验证方案中 恶意客户端可以生成一次请求并重放多次 即使计算成
  • Python UnicodeEncodeError:“ascii”编解码器无法对位置 0 中的字符进行编码:序号不在范围(128)[重复]

    这个问题在这里已经有答案了 在 Python 2 7 中 当尝试转换类型以确保其与输出架构匹配时 请参阅以下错误 UnicodeEncodeError ascii 编解码器无法对字符进行编码 0 序数不在范围内 128 试图找出原因并在木星
  • 处理 PHP 中的会话劫持

    阅读了 Stackoverflow 上有关会话劫持的许多问题 我发现验证用户会话的唯一 解决方案 是检查用户代理 这是一个薄弱的保护层 我什至懒得去检查实施它 所以 我想知道你们实施了哪些解决方案 您是否使用 PHP 的本机会话或者是否有更
  • 如何下载到 Excel?

    我想为我的 Coldfusion 网站不同部分上的几组不同数据提供 下载到 Excel 功能 我正在使用 Coldfusion 并且希望使用免费的自定义标签 库来帮助我完成此任务 而不是自己从头开始编码 我被指出cflib org http
  • 将旧密码转移到新的哈希算法?

    我正在将站点切换到 Rails 这是一个拥有超过 5 万用户的大型网站 问题是 现有的密码哈希方法是极其虚弱的 我有两个选择 1 切换到新算法 为每个人生成随机密码 然后通过电子邮件将这些密码发送给他们 并要求立即更改 2 实现新算法 但使
  • 在 C# 中创建我的对称密钥

    一直在审查一些对称加密方法 我看到了很多在类中硬编码私有静态变量的示例 通常类似于 string key THISISYOURENCRYPTIONKEY 然后在更远的地方 代码使用它来加密 解密 抛开正确的实现 算法 策略以及存储它的位置
  • 一个 Guice 就绪的安全框架?

    有没有人见过一个为与 Guice 一起工作而编写的框架 或者一个将现有安全系统 即 Acegi 与 Guice 集成的库 到目前为止我发现了以下内容 http code google com p warp security http cod
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 为什么目录存在测试为真但 cfdirectory 失败?

    我有一个访问内存文件的页面 我们有 10 20k 个文件存储在数百个目录 最多 2000 个 中 所有目录和文件都是以编程方式创建的 没有设置或更改权限 所有文件都使用默认的 CF 帐户 我们没有遇到任何问题 每隔一段时间 我们就会收到一个
  • Web 服务需要一个 DataSet 对象,我如何通过 ColdFusion 或原始 XML 提供该对象?

    我需要调用用 NET 编写的 Web 服务 进行调用的应用程序是用 ColdFusion 编写的 Web 服务期望的参数之一是 DataSet 对象 我无法在 ColdFusion 中实例化 NET DataSet 对象 如何向 Web 服
  • CFdump cfcomponent cfscript

    可以在 cfcomponent 中使用 cfdump 吗 可以在 cfscript 中使用 cfdump 吗 我知道 anser 不是 那么如何发出 insde cfcomponent 函数的值 cf脚本 我用的是CF8 可以在 cfcom
  • Python 3.4 十六进制转日语字符

    我目前正在编写一个脚本 从我的网站中提取包含日语字符的信息 到目前为止 我的脚本已从网站上提取数据 它以字符串形式返回 xe5 xb9 xb4 xe3 x81 xab xe4 xb8 x80 xe5 xba xa6 xe3 x81 xae
  • 什么是“声明式安全”?一般来说

    这个问题的答案 声明式安全 这是什么 https stackoverflow com questions 1210609并没有告诉我太多 坦率地说 根本没有告诉我任何事情 我看到一篇关于 NET 性能的博客 其中提到了这一点 您使用声明式安
  • 在 Java 中对多语言环境字符串进行排序

    我正在尝试按字符串字段 国家 地区 对对象列表进行排序 每个国家 地区都使用其母语 阿根廷 澳大利亚 奥地利 例如 我想要做的是让 出现在 A 国家之后 因为字母 对应于拉丁语 B 我正在尝试使用默认的 Collat er 但非拉丁名称仍然
  • 用于表示过滤的漏斗的 Unicode 字符

    是否存在在常见计算机操作系统上广泛使用的表示过滤 例如漏斗 的 unicode 字符 到目前为止我发现的一些最相似的字符 Y V
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • Coldfusion 跨站点身份验证

    好的 在我正在开发的 Coldfusion 网站上 我刚刚安装了一个名为 Galleon 的第三方 开源 CF 论坛 我不久前问过类似的问题 但现在我们已经取得了一些进展 目前的问题是 它不会识别父站点本身存在的任何变量 会话等 论坛本身存

随机推荐