我是如何发现 CCProxy远程溢出漏洞的
CCProxy 是一个国产的支持 HTTP 、FTP、Gopher 、SOCKS4/5 、Telnet 、
Secure(HTTPS) 、News(NNTP) 、RTSP 、MMS 等代理协议的代理服务器软件。因为
其简单易用、界面友好,非常适合在对流量要求不高的网络环境中使用,所以在国内有
很多初级的网管喜欢用这个软件,有时候我在公司上网也要用它做代理。前些日子我测
试发现 CCProxy 6.0 版本存在多处缓冲区溢出漏洞,可以导致攻击者远程执行任意代
码。
TIPS :什么是 Gopher 、RTSP 、MMS?
Gopher 是 Internet 上一个非常有名的信息查找系统, 它将 Internet 上的文件组
织成某种索引,很方便地将用户从 Internet 的一处带到另一处。允许用户使用层叠结
构的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。
RTSP 是 Real Tranfer Stream Protocol 的缩写,翻译为实时传输流协议,用来
传输网络上的流媒体文件,如 RM 电影文件等,它的下载方法请看后文《悄悄下载流媒
体》。
MMS 是 Multimedia Messaging Service 的缩写, 中文译为多媒体信息服务, 它最大
的特色就是支持多媒体功能,可以在 GPRS 、CDMA 1X 的支持下,以 WAP 无线应用
协议为载体传送视频短片、图片、声音和文字,彩信就算 MMS 协议中的一种。
漏洞发现过程
其实发现这个漏洞是很偶然的, 当时在考虑公司产品的黑盒测试方案的时候,我想使用
模板+测试用例的方式来进行网络部分的边界测试。这是比较传统的黑盒测试方法,其
核心内容就是把网络协议包分块,然后制定出对各个块的测试策略,最后按照策略对所
有块逐步进行测试。 这种测试方法的好处在于可以有效的控制测试进度,以及可以比较
详细地测试一个网络协议的所有部分, 而且在测试过程中还可以不断地加入新的测试用
例,以完善测试计划。测试程序的编写则可以使用脚本语言或 C 来完成。
TIPS :什么是黑盒测试?
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试
是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,
程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑
盒测试又称为功能测试。