注入南京大学 服务器“走光”

安全阵线

本期主角 南京大学服务器

问题所在 可被SQL注入

主要危害 敏感信息泄露

调研时间 2009.8.1~2009.10.5

漏洞状况 已通知修复

在黑客游戏中,我们发现了好几个非常有实力的安全爱好者,邀请他们加入电脑报安全研究团队。本期,黑客游戏的佼佼者白月娜为我们带来她发现的南京大学网站漏洞,该漏洞可以导致网站的服务器“走光”,可以被外人看到里面的敏感信息。如果有黑客利用这些信息进行诈骗,后果不堪设想。

我是来自Carnegie Mellon University的白月娜,最近在网上溜达的时候,无意中发现了南京大学的安全隐患——可以被SQL注入,服务器可以被外人看到,学位名单、考试系统等一些敏感资料可能会外泄。

存在SQL注入点

南京大学网站最严重的问题是存在SQL注入点,原因是网站组件对黑客提交给服务器的欺骗语句没有完好地过滤,这就使得服务器在处理信息时受到欺骗,误把管理员密码等重要的信息反馈给黑客。

这就好比银行里的金库,如果单单是看有无钥匙而不看钥匙是不是真的,那岂不是随意一个人就可以开启金库了吗?例如查询数据库的关键词union、select、from、un%69on、s%65lect、fr%6Fm、<script>、</script>等一些字符就需要进行特别处理,防止黑客写入XSS代码。

安全小百科:要想进行注入攻击,先是要有地方能向服务器提交信息。其次,服务器反馈的信息要能在页面上显示,只有同时满足以上两点才能进行注入攻击。

偷看南京大学服务器

检测南京大学网站,是我突发奇想的,所以就想使用黑客工具以图省事,结果还真让我发现了问题。下载运行《啊D SQL注入工具》,在“扫描注入点”的“网站地址”里面输入南京大学主页http://www.nju.cn,扫描后在http://www.nju.edu.cn/cps/site/newweb/foreground发现了可以注入的地方(图1)。

40-f08-01.jpg

我又在软件的“注入连接”处输入http://njunews.nju.edu.cn/ show.php?id=4590&menuid=1,检测后得到表段“admin”,字段“password”、“id”和“name”。 存在“name”字段就表示管理员不止一个(图2)。

40-f08-02.jpg

当我继续进行“password”字段的检测时,却始终都无法成功。发生这样的情况,就表示想要继续检测就要手工完成后续工作了,看来正面突破不是那么容易的。想想也是,随便一个人用工具就可以注入南京大学的网站,那还不乱套?

想难倒我那是不可能的,检测继续。我在谷歌中输入“inurl: nju.edu.cn”进行搜索,得到研究生学院、图书馆、BBS、教务处等分站地址。令我没有想到的是,居然直接在搜索结果中发现了继续教育学院的后台http://ces.nju.edu.cn/admin/login.aspx(图3)。

40-f08-03.jpg

既然天上掉馅饼,那我就不客气了。我猜,我猜,我猜猜猜!管理员用户名填写admin、密码填写'or'='or',结果登录失败。猜了几次,终于成功了,用户名admin后面加一个'or''=',密码还是'or'='or'。 登录之后,我找到“资源下载”中的“新增资源”部分(图4),这个地方可以上传木马。

40-f08-04.jpg

安全小百科:登录验证是这样的,先载入提交的用户名和密码,用SQL语句查询数据库,如果没查询到就返回错误,查询到则继续。代码是SQL="SELECT username,userpass FROM User WHERE username='"&name&"' AND userpass='"&pass&"'"。

提交时之所以使用or而不是用and是因为and优先权高于or。以用户名admin'or''='和密码'or'='or'登录时,admin为“假”,可是"or"过后就成了“真”,我们的密码也是同样逻辑关系。如何防止这种“万能密码”的漏洞呢?其实很简单,就是在接收字符的语句中加入replace过滤语句,比如name就是name=replace(request("name"),"'",""))。

此外,我发现这个网站的域名是.aspx结尾的,也就是说网站采用的是ASP.net框架编写的,而ASP.net的权限比ASP的权限要大一些,如果采用一句话ASPX木马就可以远程登录服务器并进行控制。

我下载了一个ASPX一句话木马,上传到网站后,在木马客户端中选择“工具”→“Shell管理”, 添加之前上传的ASPX木马地址,密码使用默认的“psw”, 设置好后保存即可(图5)。需要注意的是,不要用木马干坏事。

40-f08-05.jpg

通过木马,我远程看到了服务器上的好多东东,例如FTP资源、考试系统、学位名单等(图6)。在cmd里执行netstat –a –n、net user和ipconfig命令,这样一来整台服务器就被人控制了。

40-f08-06.jpg

禁止提权服务器

通过检测发现,南京大学主页的安全性不错,而下属学院的后台好多都没有进行过滤,而且后台也没有对上传文件进行验证。这样就留下了很多安全隐患,容易出现安全问题。其实这个问题,不仅仅存在于南京大学的网站,在很多其他高校网站也存在。

我们《电脑报》今年第24期刊登了《高校网站是黑客“新乐园”》一文,就揭示了高校网站的安全状况不容乐观。之前发现的问题还都是挂马问题,这回发现的问题就比较严重了,涉及到服务器安全。

建议所有高校网站管理员一定要严格进行后台文件的密码验证以及文件验证,否则很容易就会被黑客从后台提权控制整台服务器。建议设立一个安全小组,专门负责高校网站的安全,及时发现问题并进行解决。