NIT.EDU.CN网站存在漏洞
[文章作者:叶歆昊 最后修改:2010-07-19 转载请注明原文链接:http://littz.com/nit-edu-cn-website-loopholes.html]
2009.05.26,学院网络中心已修复该漏洞
本次尝试的目的是使学校网站网络变的日益安全完善,并不是让网络遭受到前所未有的威胁!本次入侵是基于网站漏洞的安全尝试,不是恶意挂载木马的行为。入侵过程未借助任何黑客(傻瓜化)工具,仅用到FireFox、Chrome、Webkit浏览器和Emeditor(比记事本功能多一些的文本编辑器)以及Photoshop(文章配图用)。希望同学们能从本文中了解到网络知识而不是发泄手段!
网站未修复漏洞前不会公开本文,修复漏洞后自动取消密码限制(写了个检测的小程序):从本网站服务器上发出Linux Shelll命令:
curl -I head http://www.nit.edu.cn/users/Editer/SelectPic.asp
检测该网页是否存在(返回404错误说明网页不存在,200 ok说明网页存在),然后结合PHP程序,如果该网页不存在,说明修复了漏洞,自动取消本文章密码限制(当然检测时间比较长,会有几个小时的延迟)
摘要:半小时内找到了学校网站非常严重的漏洞,通过此漏洞能遍历NIT.EDU.CN的WEB目录下的所有文件及文件夹,得到备份的数据库111.rar(MS SQL),通过MD5反查能获取到学校网新闻管理系统(风讯CMS 2.0)各账号密码以及其它子页面的管理账号及密码。 说明:本人从未接触过asp语言,擅长PHP与Linux系统,擅长与配置Linux Web服务器,xHTML标准化DIV+CSS。但从未接触过asp语言的我都发现了该漏洞,可见该漏洞非常严重! 漏洞URL:http://www.nit.edu.cn/users/Editer/SelectPic.asp和http://www.nit.edu.cn/Users/Editer/FolderImageList.asp 本人只测试漏洞,未有任何破坏行为,为防止漏洞扩大引起故障,请网络中心修复相关漏洞(include一个MemberCheck.asp即可,或者删除上述两个文件)、更改各账号密码、移除存放在WEB目录下的Access数据库及MSSQL数据库备份文件。 [/bash] [sourcecode language="plain"] 我不能算是黑客,为什么,能力不够! 在中国,从来就没有出现过真正的黑客,以后会不会出现还不知道。不要吃惊,这就是事实。你一定要死磕,说小榕是黑客,或者冰河是黑客,或者安焦看雪有一大帮黑客,如果你还在18岁以前,这么认为是没错的,年轻总要有一些无知的冲动。那帮人确实是玩代码的好手,或者叫做专业的程序员,相对于一个年轻的菜鸟,他们确实能够有资格被称之为黑客。如果你要说那谁谁流光玩的很棒,会做免杀,玩木马,盗QQ,有很多肉鸡,所以他是黑客。我可以负责任的说,这种人不是黑客,这种人是驴,这里不是骂人,说是驴是有原因的。想想驴整天干什么?——无休止的围着磨盘拉磨,重复一个机械的动作。想想那种人整天干什么?——无休止的点击鼠标左键,扫肉鸡,放木马。实质和驴干的是一样的活,无非一头驴拉磨,一头驴点鼠标左键。 什么是真正的黑客?黑客的定义是崇尚自由与挑战的计算机狂热者,可以征服计算机。从这个意义上说,全世界能够称之为黑客的人屈指可数,中国没有。是的,一个也没有。即使是你说听说过的最强的高手,从某种意义上说他们仍被计算机的枷锁锁住,被束缚在windows操作系统或者linux操作系统或者OS/2或者……被束缚在Intel,或者AMD,或者……被束缚在VC,BCB,DELPHI或者……记住,这些全都是美国人的(Linus大侠也在美国工作),所以不必惊讶,中国没有黑客。 哪些人是黑客? William Bradford Shockley是黑客,因为他发明了晶体管,然后才有集成电路,才能有我们现在的PC。 George Boole是黑客,他的布尔代数理论是整个数字化时代的前提,只要有二进制就离不开布尔代数。 Neumann János是黑客,因为他构建了计算机的模型。 Bjarne Stroustrup是黑客,因为他创立了C++,使得更多的人可以用这种划时代的语言来控制计算机。 Linus Benedict Torvalds是黑客,因为他编写了LINUX操作系统。 Claude Elwood Shannon是黑客,因为他创立了信息论。 Vinton Gray Cerf和Robert Elliot Kahn是黑客,因为他们创造了TCP/IP协议,使得互联网成为可能。
主要技术资料来源:Google:http://www.google.com,维基百科:https://secure.wikimedia.org/wikipedia/zh/w/index.php,邪恶八进制信息安全团队讨论组https://forum.eviloctal.com/viewthread.php?tid=15778,MD5反查网站http://www.cmd5.com/
我对ASP/.NET、VB、MSSQL/ACCESS几乎不了解,我了解的是PHP、C、MYSQL、Linux等开源的技术,我所做的是从我了解的技术的延伸,程序语言逻辑上都有着几分相似,只是语法结构稍有不同。请留言的朋友不必询问我不了解的方面,因为我无法准确回答。如果是WEB页面的,请不要咨询Table,我用的是DIV+CSS。
现在开始说流程:
1、初次尝试
进入http://www.nit.edu.cn首页,稍微看了下,是ASP的程序(为什么,因为新闻中心是http://www.nit.edu.cn/news_index.asp,很明显的后缀名),按一般管理路径推测,应该是http://www.nit.edu.cn/admin.asp或者http://www.nit.edu.cn/admin/,测试后者是管理地址。

管理登录界面
<form name="form1" method="post" action="CheckLogin.ASP?UrlAddress=">
<input name="Name" type="text" class="kuang1" id="Name" value="" size="12">
<input name="PassWord" type="password" class="kuang1" id="PassWord" size="12">
</form>
没发现非常有价值的信息,只从form表单中得到验证程序地址在http://www.nit.edu.cn/admin/checkLogin.asp,用户名所在的变量为Name,密码所在的变量为PassWord,验证码所在的变量为VerifyCode。不知道这个后台系统是什么系统,暂且认为它是网络中心自己写的后台吧!尝试了一下’or’=&1=1 这样简单的程序错误漏洞以及SQL注入漏洞,不成功,初次尝试失败。
2、后台分析
初次尝试失败后很长一段时间就没有再次尝试,虽然这个验证码不堪一击,完全可以自己写个小程序设个循环不断尝试账号和密码并且绕过验证码来破解,但是这样的事情没意义。
直到近期因工作关系看到有其他人登录学校网后台管理系统,让我目睹了一下登录之后的真面目。

管理界面
上图为配合本文,在入侵之后的截图,当时只看了一眼后台,没时间多分析,但是还是有很多疑点。(为防止关键信息泄露,部分马赛克)
为何要模板管理?一般傻瓜型的博客才要模板,如果是自己开发的后台,文章的板式都是直接写在ASP文件里,不需要开发什么模板。除非是M-V-C框架
什么是插件?插件是一个程序的开发者为了让其它程序员也能参与到这个程序的开发中来,提供了一些接口,其它程序员根据这个接口写插件就能丰富原程序的功能。如果是自己开发的后台根本不需要插件,因为出于安全考虑,这个后台应该只是这一个网站用的,核心的程序越少人知道越好。
接下来的会员管理、在线升级、官方演示就更明显了,是其它人员开发的程序。例如我们搭建论坛的时候使用Discuz!或PHPWind程序一样,开发者是其他人,使用者是我们
右侧的当前服务器状态检测,如果我是服务器的管理员,我非常清楚我现在服务器安装了什么软件,版本是什么,根本不会去写个这样的程序来检测服务器软件信息。这样只会让更多人知道服务器软件信息,更不安全
所以,初次尝试认为这个后台是网络中心开发的后台的观点不正确,该后台应该是某ASP通用的后台,根据时间来看,应该是某一平台的早期版本。
3、查找后台系统
把图片中的服务器信息条目复制到Google中搜索,搜索出许多网站,果不其然,我们学院网站的确是使用一个通用的平台,具体是什么呢,进入其中一个搜索条目的网站,后台界面与NIT.EDU.CN的非常相似,但也有不同之处,除了版权信息以外的其它信息也有点不一样。退回到它网站的登录界面,提示 风讯网站管理系统V4。
现在我基本可以确定学校网站的后台使用的是风讯CMS的早期版本有点像2.0版本。验证版本。到网上搜索风讯CMS 2.0源码下载,找到一个风讯CMS 2.0的ASP源码包。
但是本机上没有ASP环境,我用的服务器都没有ASP环境,都是Linux系统不可能支持ASP!只好用EmEditor软件手动分析ASP源码了,分析了几分钟,与学校网站后台对比,可以确定是风讯 2.0
4、查找漏洞
任何一套软件系统必然有程序员的疏忽,总会有点漏洞,需要不停地修补,特别是一套这种很多人用的,而学校使用的版本是比较早期的版本,应该会存在一些漏洞。继续Google搜索风讯CMS 2.0漏洞,找到邪恶八进制网站,有关该版本漏洞https://forum.eviloctal.com/viewthread.php?tid=15778。漏洞行为是可以查看到网站根目录下的所有文件!
4、分析数据库系统
通常ASP程序是和Access数据库(需要在网站目录内,mdb文件)搭配,有时也会和SQL Server(MSSQL)搭配,.net程序一般和SQL Server搭配,而PHP一般和MySQL或者Oracle,JSP一般也和MySQL或Oracle数据库配合。并不是某个程序语言必须要和某种数据库搭配,而是考虑到稳定性、访问量、费用、操作便携性,以上几种搭配是比较成熟的配合。
文本数据库是存储于TXT或者其它后缀名的文本文件中,程序直接访问文件,安全性与并发性能非常低;Access是文件数据库,即数据库内容是存放于.mdb二进制文件(含有部分文本)中,程序直接访问文件,安全性差,并发性一般;MySQL、MSSQL、Oracle等数据库都不是基于操作系统文件系统的,所以程序不是直接访问文件,是访问后台服务,data数据可以不用放置在网站目录下,安全性高。
数据库中存储这文章管理系统的各个用户和密码、文章内容等等。对于MySQL、MSSQL、Oracle数据库,只能得到程序连接数据库的账号密码才能获取到数据库中的内容,一般数据文件很难得到,而且得到了全都是二进制文件,无任何有用的信息,本机安装数据库管理系统也无法打开。但是对于Access数据库,可以用连接数据的账号密码查看到数据库内容,也可以直接下载mdb文件,用记事本打开分析(因为里面有文本数据)
所以,找出的.mdb文件很有可能是网站使用的数据库
5、找到数据文件
遍历目录,通过文件大小、修改时间以及文件名猜测判断以下文件比较像是数据库数据文件或者是数据库备份文件。

漏洞网页
初步判断可能为数据库数据文件的为0.rar,111.mdb,111.rar等,但是找了一遍都没看出有用的东西,要么是留言板的数据库,要么是一些访问日志文件之类。
再详细找一遍之后注意到了这个111.rar文件,解压缩后有个111无后缀名的文件,用EmEditor打开,看到关键信息。

SQL Server数据库
虽然很多乱码,不用管,看有用的信息就可以,数据库数据文件毕竟不是纯文本文件,用文本方式打开肯定会有乱码。注意M i c r o s o f t S Q L S e r v e r,看来学校网站用的MSSQL数据库,不是Access,猜测错了。当然我也不用MSSQL,我都是用开源的MySQL。这样的话我就没有权限看到现在使用的数据库数据了,能看到那个除非是操作系统级的漏洞。只能继续分析这个111文件。
6、反查账号密码
估计这个111文件是以前MSSQL数据库数据的备份文件,或者是索引文件之类,总之是个有价值的文件。直接搜索admin,一般admin都是超级管理员。

账号密码信息
搜索到一条admine710cf15114bb4ffadmin信息,对比上下文,基本可确定前一个admin为登录账号,末尾的admin为对外显示名称,中间的16位e710cf15114bb4ff为密码经过md5加密之后的密文;类似的宣传部账号 newinput5fe84ad35fb5f95b宣传部 ,newinput为登录用户名,宣传部为显示名称,5fe84ad35fb5f95b为密码的md5密文。
由于md5加密技术早已不是什么先进的技术,随处都能找到md5反查明文的结果,找个网站http://www.cmd5.com/,输入md5密文,反查对应的密码明文。但是很遗憾,admin这个账号的密文查半天也没查出明文密码来,估计是密码设计的比较复杂,不仅有英文大小写、数字混合,还有标点符号什么的吧。宣传部账号查到了密码,但是登录失败,估计这个111是很早之前的数据库备份文件。再试其它账号,找到不少能反查出密码并且能成功登录后台的(很久没改密码了吧),不过大多只有上传文件权限,不能直接发布、删除文章,只找到一个账号可以直接添加文章不需审核的账号,没探测出超级管理员的密码。
漏洞探测到此停止,用某账号添加了一篇文章,然后删除该文,如下图所示。当然如果是admin账号的话,修改index页面的模板,留个hacked by LittleHZ也可以的。

文章管理页面
6、总结
1、操作系统及时升级,Windows出了名的漏洞多,不及时打系统补丁让系统暴露于0day漏洞下非常不安全。
2、及时升级风讯CMS系统,风讯CMS应该是很多年之前的吧,这个版本应该是在2005年左右就有了,风讯CMS的漏洞在2006年就存在,但是一直没有更新补丁。
3、密码应该由英文大小写、数字、标点符号混合,防止被md5反查。密码及时更新。
4、密码加密算法不应使用简单的md5()函数加密,而应加随机数组合,这样彻底防止密码密文被反查成明文。
5、网站备份数据不应存放WEB文件夹中,防止备份数据能通过HTTP协议轻易下载。
长远建议:更换为Linux系统,权限配置好,非常安全,而且服务器性能非常高。本人实测的1G内存服务器,配置CentOS 5.3 Linux+ Nginx 0.7.57 + PHP 5.2.9 + MySQL 5.1.34,跑PHP程序,每秒1万的并发连接数没问题,CPU负载也不高。当然,现在这样的asp构架就要完全放弃了,微软的东西都不能在Linux下用。
漏洞探测时间:2009年1月19日
本文完成时间:2009年5月18日(一直没时间写这么长一篇的文章)
2009/06/06 于 10:44:08
很复杂的说
2009/08/03 于 21:16:26
耗子。。。
加油!
支持linux,支持开源。。。
–OEway
2009/08/04 于 10:38:26
当然是Linux优秀