朋友找到我说CHM格式的文件无法显示,而且windows 2000上正常,windows xp上打开后显示无法找到页面。
我在自己的windows xp上试了一下,果然如此。奇怪,但自己的CHM电子书都好好的呀,虽然告知用户此帮助文件有问题,但还是解决问题呀。唉,也是翻了以前所有遇到过的类似问题的纪录,一一尝试都不对。结果倒是那边ERP部门找到厂商咨询后,ERP厂商给出了Solution。原来事情是这样的:
在某些CHM文件中可能会使用到InfoTech协议,而它包含3种协议:ms-its 、its、mk:@msitstore 。利用这些协议,恶意攻击者或者恶意代码将可能导致帮助产生溢出漏洞,从而控制计算机。而MS最新公布的安全更新MS05-026 KB896358修正了这一情况,并屏蔽了远程链接,这就导致了使用了远程链接的一些CHM页面开启失败。趋势安全站点对此漏洞作出了如下描述:
这个安全问题来自于早先公布的微软HTML Help漏洞。HTML Help是Windows平台上的标准帮助系统。作者可以使用它为程序或者多媒体主题或者Web站点创建在线的帮助文件。
由于HTML Help并不会完全校验输入数据的特性,导致这一点可能被利用。一个特殊的CHM文件可以导致帮助系统溢出,这个溢出如果被利用,就可以用于执行恶意代码。
这样的恶意CHM文件可以使用“ms-its”协议,通过IE开启。开启后的CHM文件不再需要用户的参与,就能够自动执行恶意CHM文件和附随的代码。“ms-its”协议是InfoTech 协议的一部分,该协议能够 为ITSS.DLL或者微软InfoTech Storage System Library所执行。当然,这些恶意的程序无法*自身传播,仍然需要用户在特定的位置,通过IE和“ms-its”协议访问恶意的CHM文件。
这种情况一旦发生,如果受影响的用户当前登录身份是管理员,远程代码执行的漏洞可以允许恶意用户或者恶意软件,获得受影响系统的完全控制权限。
从而这个恶意用户或者恶意程序得以在此系统上执行代码,并使用完全控制权限安装或者运行程序,并能够察看或者编辑数据。因此,这个漏洞同样也能够被用于复制。
受影响的系统:
我按照 安装 Windows Server 2003 Service Pack 1、MS05-026 或 MS04-023 后,无法使用某些采用 InfoTech 协议的 Web 应用程序 中所述,对客户端注册表作出如下修改,再次尝试执行那些CHM文件,成功了!
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\
需要提到一点的是,默认情况下,子健1.x 下可能并不存在 ItssRestrictions子健,您需要手动创建它,然后在其下创建字符串键值 UrlAllowList 。
关于此补丁及相关问题的描述,请参考如下KB:
安装 Windows Server 2003 Service Pack 1、MS05-026 或 MS04-023 后,无法使用某些采用 InfoTech 协议的 Web 应用程序
MS05-026:HTML 帮助中的漏洞可能允许远程执行代码
安装安全更新 896358 后下载的 Compiled Help Module 文件无法打开