Xato网络安全

/ns/ld/softld/data/20010107051321.htm

Xato网络安全, Inc. www.xato.net
安全性建议 XATO-112000-01
2000-11-9

- CART32购物卡的多重漏洞-


----------------------------------------------------------------------------

受影响的系统
================
使用Cart32 v3.5及更低版本的基于Win32的服务器。


摘要
========
来自McMurtrey/Whitaker & Associates公司的Cart32购物卡应用程序
易于遭受很多信息泄露及其他形式的攻击。此外,普通用户的错误配置和不正确的密码加密法
使该应用程序更易受到攻击,很可能损害到整个系统的安全。

细节
=======
Cart32购物卡应用程序是一个Win32执行程序,以cart32.exe和c32web.exe驻留
在WEB服务器上。有很多参数可以加入到该CGI应用程序中来揭示系统信息,
也就是WEB ROOT的物理路径、Windows目录的物理路径,以及程序文件目录的
物理路径。下列的urls示范了这个问题:

http://www.example.com/cgi-bin/cart32.exe/error
http://www.example.com/cgi-bin/c32web.exe/ShowAdminDir
http://www.example.com/cgi-bin/c32web.exe/CheckError?error=53

Cart32也同样易于受到服务拒绝的攻击,输入下列url命令将使进程达到100%使用率:
http://www.example.com/cgi-bin/c32web.exe/ShowProgress

Cart32发布了一个更新版本3.5a,可以到他们的WEB站点上访问这些已经更新的版本
(www.cart32.com).

另一个问题是,许多人(由ISP或WEB主机公司设立的)经常把cart32.ini文件
跟cart32.exe以及c32web.exe放在同一个目录中。如果那个文件在那个目录中可以读取,
那样服务器的很多信息将被泄露,特别是假如这个文件中存在Debug片段。
Cart32.ini包含一个简单加密的admin密码和服务器配置信息。
Debug片段能够包含密码原文、服务器环境变量以及其他敏感信息。
以往就已经讨论过关于存放cart32.ini文件的问题,Cart32只字未提这个问题,
但它仍然是任何搜索引擎都将揭露的非常普遍的一个问题。这个问题需要重心着手讨论,
特别是考虑到他们脆弱的加密术。

2000年11月6日, Colin Hart和Cart32发行了一个关于其脆弱的加密术的联合建议
(BID 195) 。 同时他们申明他们将不会放弃目前的运算法则。因为我们不同意含糊安全的观念,
我们将这段VBScript代码放在一起以示范密码可以如何被解密:

Cart32Decode = Chr(Asc(Mid(sPass, 8)) - 12) & _
Chr(Asc(Mid(sPass, 5)) - 8) & _
Chr(Asc(Mid(sPass, 3)) - 16) & _
Chr(Asc(Mid(sPass, 15)) - 15) & _
Chr(Asc(Mid(sPass, 9)) - 9) & _
Chr(Asc(Mid(sPass, 1)) - 12) & _
Chr(Asc(Mid(sPass, 4)) - 3) & _
Chr(Asc(Mid(sPass, 11)) - 5) & _
Chr(Asc(Mid(sPass, 13)) - 11) & _
Chr(Asc(Mid(sPass, 6)) - 5) & _
Chr(Asc(Mid(sPass, 2)) - 1) & _
Chr(Asc(Mid(sPass, 2)) - 1) & _
Chr(Asc(Mid(sPass, 14)) - 13) & _
Chr(Asc(Mid(sPass, 12)) - 10) & _
Chr(Asc(Mid(sPass, 10)) - 6) & _
Chr(Asc(Mid(sPass, 7)) - 8)

Colin Hart的建议中提到, 3.5a版本将修复这个问题。

解决方案
========
2000年8月28日第一次通报Cart32有这个问题。 Cart32已经发布了一个3.5a版本改善这些问题,
但不是全部。如果要使用Cart32,你应该仔细阅读他们WEB站点上的基础知识文章。


注释
==========
这里真正的问题不在于Cart32有安全问题, 而是程序员们经常疏于结合网络安全。
程序员们希望开放后门来使他们易于使用和编辑他们的应用程序。
没有正确的安全策略和训练,你会遇到上面讲到的以前Cart32曾遇到的一样的问题
以及其他问题,包括严密编码的后门密码。如果软件开发者不重视安全,他们就不会
花时间来保护他们的用户。 这里的另一个问题是使用的加密术和运算法则。
开发者用来开发Cart32的运算法则基于含糊的安全法则,这意味着任何职工都能解密他们
能访问的任何ADMIN密码。我宁愿使用一种更标准的加密术,防止其他人解密,
包括Cart32的职工。不幸的是,任何安全专家都可以获得数千有效购物卡中的任何一个,
并且找到其许多的漏洞。这些相同的应用程序多次被一些非常大的公司使用。
使事情更糟的是, ISP和web主机公司忙于其差劲的安全实践,并且向他们的客户推荐那些
实践。除非软件开发者采取更多的措施来实现较好的安全实践,否则这个问题将继续增长下去。