修复 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 转换问题/漏洞 的相关文章

  • Rfc2898DeriveBytes 与密码的 Sha2 哈希生成

    我最近知道使用 SHA256 为加盐密码生成密码哈希 在阅读了一些有关加盐密码和安全性的内容后 我看到rfc2898derivebytes and passwordderivebytes NET 中的类 使用有什么好处吗rfc2898der
  • Codeigniter - 检查用户是否已登录并存在(它是真实用户)

    我正在尝试在用户登录我的网站时为他们设置会话数据 因此 如果用户存在于数据库中 我将设置一个会话数据 例如 this gt session gt set userdata user exists 1 现在 每次我想检查用户是否存在并已登录时
  • NSAttributedString 和表情符号:位置和长度问题

    我正在使用 NSAttributedString 对来自 API 的文本的某些部分 如 Twitter 上的 mention 进行着色 API 为我提供了文本和代表文本中应着色的部分 或链接 标签等 的实体数组 但有时 颜色会因为表情符号而
  • 用户如何登录定义了读者角色的 couchapp?

    我通过 Couchapp 部署了我的应用程序 这意味着整个应用程序是从数据库中提供服务的 我不希望 Couchdb 数据库中的数据公开可用 因此我指定了用户在向他提供数据之前必须具有的读者角色 然而 当我去申请时 我所能得到的是 error
  • ASCIIEncoding.ASCII.GetBytes() 返回意外值

    这段 C 代码 string s u00C0 byte bytes ASCIIEncoding ASCII GetBytes s Trace WriteLine BitConverter ToString bytes 产生以下输出 3F 为
  • 什么是标准 unicode 字体?

    以下操作系统的标准 unicode 字体是什么 视窗XP 视窗Vista Window 7 按照标准 我的意思是它们存在于操作系统的全新安装中 无需将它们作为附加包安装 我一直在寻找同样的东西 看起来所有 Win 操作系统中只有一种字体 L
  • 解码 OAEP 填充时出错

    我的问题已经解决了一半 请帮助 我已使用数字签名的公钥成功加密了文本 但在解密时出现错误 解码 OAEP 填充时出错 我的代码如下 region Test Encryption public void a using var rsa new
  • Windows 上的 wchar_t 和 char16_t 是一样的吗?

    我有一个实例std u16string 我可以通过它吗c str 到一个 Win32 API 它期望LPCWSTR 没有任何类型的转换 例如 我可以安全地这样做吗 auto u16s std u16string u Hello SetWin
  • 在Python中通过sys.stdout写入unicode字符串

    暂时假设一个人无法使用print 从而享受自动编码检测的好处 所以这给我们留下了sys stdout 然而 sys stdout太蠢了不做任何合理的编码 http bugs python org issue4947 现在人们阅读 Pytho
  • Amazon Web Services:设置 S3 策略以允许 putObject 和 getObject 但拒绝 listBucket

    我在 Amazon S3 上使用 getObject 和 putObject 请求 并在创建访问存储桶的策略时发现 如果我不允许 listBucket 则会收到 访问被拒绝 错误 这样做的问题是 listBucket 意味着用户可以列出存储
  • 安全转义表名/列名

    我在 php 中使用 PDO 因此无法使用准备好的语句转义表名或列名 以下是我自己实现它的万无一失的方法 tn str replace REQUEST tn column str replace REQUEST column sql SEL
  • 支持 API 28(Android Pie) 上的 Android StrongBox 的 Android 智能手机列表

    我需要 Android 9 中支持安全元件和 StrongBox 的 Android 手机列表 在哪里或如何找到该列表 我在 Samsung Galaxy S9 和 AVD Google Pixel XL API 28 上尝试了下面的代码
  • Java中的字节和字符转换

    如果我将一个字符转换为byte然后回到char 那个角色神秘地消失了 变成了别的东西 这怎么可能 这是代码 char a line 1 byte b byte a line 2 char c char b line 3 System out
  • 为缺少字体的 Web 浏览器降低 Unicode 字符的质量

    我在 html 文档中使用 Unicode 检查标记 U 2713 我发现它在大多数浏览器中都可以正常显示 但偶尔我会遇到有人的电脑上缺少字体 如果字体丢失 是否有 HTML JS 技巧来指定替代显示字符 或图像 没有直接的方法可以判断任何
  • 为什么将 MySQL 凭据放在 www 目录之外? [复制]

    这个问题在这里已经有答案了 可能的重复 将核心类放在 Web 根目录之上 好还是坏主意 https stackoverflow com questions 3648739 putting core classes above the web
  • MySQL 将 ÅäÖ 视为 AAO?

    这两个查询给了我完全相同的结果 select from topics where name Harligt select from topics where name H rligt 这怎么可能 看起来mysql在搜索时会将 翻译成aao
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • Python“非规范化”unicode 组合字符

    我正在寻找标准化 python 中的一些 unicode 文本 我想知道是否有一种简单的方法可以在 python 中获得组合 unicode 字符的 非规范化 形式 例如如果我有序列u o xaf i e latin small lette
  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb

随机推荐