本文发表在 rolia.net 枫下论坛漏洞是一位叫做shadow的网民发现的。
以下是shadow的来信中提到的漏洞发现过程。
这个漏洞的发现很有些戏剧性。那天恰巧是中国的情人节(农历7月7日,今年阳历8月25日),我想为我的女友在新浪贺卡站上挑选一张贺卡,于是登录到新浪贺卡站:"http://ecards.sina.com.cn"。当我选中一个贺卡的时候我看到网页程序发出了如下申请:"http://ecards.sina.com.cn/cgi-bin/card/preview.cgi?title=父亲节快乐&name=sina&image=/2000-6-13/09202036812&template=1&ztcolor="
根据我所掌握的CGI编程知识,"preview.cgi"有可能是服务器上一个CGI数据库文件调用程序(下面简称CGI程序)。我又注意到CGI程序读取贺卡文件的形式:"……image=/2000-6-13/09202036812……"。如果没有猜错,CGI程序通过"&"来连接几个数据库文件的定位条件,从而定位出图片文件(即贺卡),并将其显示出来。很明显,"2000-6-13"是文件所在路径(这说明网站的文件目录是按日期命名和排序的),而后面的"09202036812"是贺卡的文件名。我想,既然从数据库中能够调用图片文件,那是不是也可以调用其他文件,比如说系统文件呢?
我的脑海里闪过了UNIX操作系统中最重要的系统文件之一的"passwd"(它用于存放主机的各种用户名和密码信息)。我们都知道,"/.."代表父文件夹,而"/etc/passwd"是passwd文件存放的相对路径。于是,我按照此CGI程序读取的规律,修改地址栏的URL,删除"/2000-6-13/09202036812&template=1&ztcolor=",将其替换为类似"/../../etc/passwd"……当我将"/.."的个数加到9个的时候(文件夹达到11层),地址栏部分为:http://ecards.sina.com.cn/cgi-bin/card/preview.cgi?title=父亲节快乐&name=sina&image=/../../../../../../../../../etc/passwd,贺卡的位置上出现了该主机的passwd文件的内容(如图2)。我非常惊讶!passwd中存放了服务器管理员的名字和密码,这个文件竟然被此CGI程序(preview.cgi)泄露!
注:passwd文件是UNIX操作系统存放系统管理员和普通用户(这里的"用户"并非指网站的访问者而是网站内部的人员,可以理解普通级别的管理员)的用户名、密码等信息的文件。此文件本属于只有系统管理员才有权力读取的文件,即使是系统的普通用户也无权读取,更不用说接受新浪服务的普通访问者了。某些版本UNIX系统的passwd文件被获取后,管理员的密码可以直接使用黑客软件破解得出(passwd文件中的密码仍然是加密的),攻击者随即就能够以管理员的身份"接管"新浪,为所欲为;即使不能破解,攻击者也可以从中获得服务器管理员的用户名等机密信息,进而可以为扫描、密码穷举猜测等攻击做进一步的准备。因此这个文件的泄露,尤其是它仅仅通过在IE地址栏中输入一串URL信息而非通过黑客软件即可获得,这是极度令人难以置信的。过在IE地址栏中输入一串URL信息而非通过黑客软件即可获得,这是极度令人难以置信的。
倒吸一口凉气之后,我又"战战兢兢"地尝试着将地址栏中URL的绝对路径部分改为"etc/syslog.conf"(系统版本文件)、"etc/inet/inetd.conf"(系统网络服务配置文件)、"/etc/publickey"(系统公钥文件),不一会儿,我已经得到了新浪服务器一些重要的系统文件。
两次通知新浪
1.发现者首次通知新浪(来信摘抄):
发现漏洞后,我立即向新浪公司发了通知信(E-mail方式)。整整两个月过去了,我一直没有收到回复信函。时至今日,此漏洞依然存在。作为新浪网的用户,我对新浪网处理此漏洞的态度感到遗憾。而今年3月,我发现了sohu的一个CGI漏洞,通过它可以进入Sohu的一台主机。和Sohu的安全人员联系后,引起了Sohu管理层的高度重视,他们迅速找到我本人,最终,我协助他们共同解决了这个漏洞。
于是,我将此漏洞告知我所在的网络安全联盟(四川安盟科技有限公司),希望通过他们出面,帮助新浪尽早解决此漏洞。
2.编辑部通知新浪
10月8日,国庆后上班的第一天,本刊编辑拨通了新浪网的电话,以下是电话记录。
……
本刊编辑:喂,请问是新浪网吗?我是上海的一位用户,我刚才跟您那位工作人员谈了一下,我知道新浪网有一个安全漏洞,他让我跟您联系一下,可以跟您联系吗?我想与有关安全方面的人士联系,分机是7403,是这样一个漏洞,我先描述一下特征。是这样的:可获得系统密码,可以存取文件,不知您对这个漏洞有什么看法?
新 浪 网:您第一次是跟我们这个部门联系的吗?
本刊编辑:我是跟"网站内容管理"部门联系的,他让我跟您(负责网络安全的部门)联系,我不知您那里准备怎么解决这个漏洞?
新 浪 网:获得系统密码,还有呢?
本刊编辑:然后就是可获得文件存取权限,这个漏洞发现很久了,现在还在。
……
(随后的25秒,新浪网的工作人员放下了电话,和周围的工作人员低声商量--给人的感觉是,这位工作人员面对这种问题有些不知所措)
新 浪 网:这样,您将您发现的内容用邮件给我们发过来。
本刊编辑:这个漏洞不是我发现的,是我朋友发现的,他是网络安全公司的,您如果想解决的话,最好直接与他联系。
新 浪网:您可以把情况……可以把那个用邮件发过来,我们看一下。
(我们注意到,新浪的工作人员似乎始终在回避"漏洞"或者"问题"这样的字眼)
本刊编辑:我觉得在您跟他协商之前还不能告诉您。
新 浪 网:那你也无法告诉我们,问题能不能解决?
本刊编辑:可以肯定的是:服务器系统密码可以得到,还有一个就是文件存取(的权限)可以得到。这两点,我觉得应该很成问题。
新 浪 网:那这样,我们自己来查一下。
本刊编辑:你们自己查一下,我过两天想看一下结果,好吗?
新 浪 网:我们会跟其它部门说一下,然后预防一下这个。
本刊编辑:如果你们能发现,我觉得也不错。那就这样吧,再见。
新 浪 网:再见!
经证实,截至10月16日,此漏洞仍然存在。
人人都知道网络有漏洞,但漏洞究竟是什么?以前,我们把"漏洞"理解成网络技术、协议上的漏洞,但现在,我们认为对"漏洞"应该有更新的诠释。更多精彩文章及讨论,请光临枫下论坛 rolia.net
以下是shadow的来信中提到的漏洞发现过程。
这个漏洞的发现很有些戏剧性。那天恰巧是中国的情人节(农历7月7日,今年阳历8月25日),我想为我的女友在新浪贺卡站上挑选一张贺卡,于是登录到新浪贺卡站:"http://ecards.sina.com.cn"。当我选中一个贺卡的时候我看到网页程序发出了如下申请:"http://ecards.sina.com.cn/cgi-bin/card/preview.cgi?title=父亲节快乐&name=sina&image=/2000-6-13/09202036812&template=1&ztcolor="
根据我所掌握的CGI编程知识,"preview.cgi"有可能是服务器上一个CGI数据库文件调用程序(下面简称CGI程序)。我又注意到CGI程序读取贺卡文件的形式:"……image=/2000-6-13/09202036812……"。如果没有猜错,CGI程序通过"&"来连接几个数据库文件的定位条件,从而定位出图片文件(即贺卡),并将其显示出来。很明显,"2000-6-13"是文件所在路径(这说明网站的文件目录是按日期命名和排序的),而后面的"09202036812"是贺卡的文件名。我想,既然从数据库中能够调用图片文件,那是不是也可以调用其他文件,比如说系统文件呢?
我的脑海里闪过了UNIX操作系统中最重要的系统文件之一的"passwd"(它用于存放主机的各种用户名和密码信息)。我们都知道,"/.."代表父文件夹,而"/etc/passwd"是passwd文件存放的相对路径。于是,我按照此CGI程序读取的规律,修改地址栏的URL,删除"/2000-6-13/09202036812&template=1&ztcolor=",将其替换为类似"/../../etc/passwd"……当我将"/.."的个数加到9个的时候(文件夹达到11层),地址栏部分为:http://ecards.sina.com.cn/cgi-bin/card/preview.cgi?title=父亲节快乐&name=sina&image=/../../../../../../../../../etc/passwd,贺卡的位置上出现了该主机的passwd文件的内容(如图2)。我非常惊讶!passwd中存放了服务器管理员的名字和密码,这个文件竟然被此CGI程序(preview.cgi)泄露!
注:passwd文件是UNIX操作系统存放系统管理员和普通用户(这里的"用户"并非指网站的访问者而是网站内部的人员,可以理解普通级别的管理员)的用户名、密码等信息的文件。此文件本属于只有系统管理员才有权力读取的文件,即使是系统的普通用户也无权读取,更不用说接受新浪服务的普通访问者了。某些版本UNIX系统的passwd文件被获取后,管理员的密码可以直接使用黑客软件破解得出(passwd文件中的密码仍然是加密的),攻击者随即就能够以管理员的身份"接管"新浪,为所欲为;即使不能破解,攻击者也可以从中获得服务器管理员的用户名等机密信息,进而可以为扫描、密码穷举猜测等攻击做进一步的准备。因此这个文件的泄露,尤其是它仅仅通过在IE地址栏中输入一串URL信息而非通过黑客软件即可获得,这是极度令人难以置信的。过在IE地址栏中输入一串URL信息而非通过黑客软件即可获得,这是极度令人难以置信的。
倒吸一口凉气之后,我又"战战兢兢"地尝试着将地址栏中URL的绝对路径部分改为"etc/syslog.conf"(系统版本文件)、"etc/inet/inetd.conf"(系统网络服务配置文件)、"/etc/publickey"(系统公钥文件),不一会儿,我已经得到了新浪服务器一些重要的系统文件。
两次通知新浪
1.发现者首次通知新浪(来信摘抄):
发现漏洞后,我立即向新浪公司发了通知信(E-mail方式)。整整两个月过去了,我一直没有收到回复信函。时至今日,此漏洞依然存在。作为新浪网的用户,我对新浪网处理此漏洞的态度感到遗憾。而今年3月,我发现了sohu的一个CGI漏洞,通过它可以进入Sohu的一台主机。和Sohu的安全人员联系后,引起了Sohu管理层的高度重视,他们迅速找到我本人,最终,我协助他们共同解决了这个漏洞。
于是,我将此漏洞告知我所在的网络安全联盟(四川安盟科技有限公司),希望通过他们出面,帮助新浪尽早解决此漏洞。
2.编辑部通知新浪
10月8日,国庆后上班的第一天,本刊编辑拨通了新浪网的电话,以下是电话记录。
……
本刊编辑:喂,请问是新浪网吗?我是上海的一位用户,我刚才跟您那位工作人员谈了一下,我知道新浪网有一个安全漏洞,他让我跟您联系一下,可以跟您联系吗?我想与有关安全方面的人士联系,分机是7403,是这样一个漏洞,我先描述一下特征。是这样的:可获得系统密码,可以存取文件,不知您对这个漏洞有什么看法?
新 浪 网:您第一次是跟我们这个部门联系的吗?
本刊编辑:我是跟"网站内容管理"部门联系的,他让我跟您(负责网络安全的部门)联系,我不知您那里准备怎么解决这个漏洞?
新 浪 网:获得系统密码,还有呢?
本刊编辑:然后就是可获得文件存取权限,这个漏洞发现很久了,现在还在。
……
(随后的25秒,新浪网的工作人员放下了电话,和周围的工作人员低声商量--给人的感觉是,这位工作人员面对这种问题有些不知所措)
新 浪 网:这样,您将您发现的内容用邮件给我们发过来。
本刊编辑:这个漏洞不是我发现的,是我朋友发现的,他是网络安全公司的,您如果想解决的话,最好直接与他联系。
新 浪网:您可以把情况……可以把那个用邮件发过来,我们看一下。
(我们注意到,新浪的工作人员似乎始终在回避"漏洞"或者"问题"这样的字眼)
本刊编辑:我觉得在您跟他协商之前还不能告诉您。
新 浪 网:那你也无法告诉我们,问题能不能解决?
本刊编辑:可以肯定的是:服务器系统密码可以得到,还有一个就是文件存取(的权限)可以得到。这两点,我觉得应该很成问题。
新 浪 网:那这样,我们自己来查一下。
本刊编辑:你们自己查一下,我过两天想看一下结果,好吗?
新 浪 网:我们会跟其它部门说一下,然后预防一下这个。
本刊编辑:如果你们能发现,我觉得也不错。那就这样吧,再见。
新 浪 网:再见!
经证实,截至10月16日,此漏洞仍然存在。
人人都知道网络有漏洞,但漏洞究竟是什么?以前,我们把"漏洞"理解成网络技术、协议上的漏洞,但现在,我们认为对"漏洞"应该有更新的诠释。更多精彩文章及讨论,请光临枫下论坛 rolia.net