探索黑客技术攻防,实战研究与安全创新

导航菜单

剖析新云系统NewAsp CMS ask模块的0day

新云的网站内容管理系统NewAsp CMS相信大家都有所耳闻吧,在网上的使用量还是相当大的,但其安全性却在版本的更新中并没有得到多大的提升,最新的4.0版本更是频出漏洞,使得不少网站受到了连累。Ask提问系统是新云网站内容管理系统的一个子系统,默认是被安装的,下面我就对最热门的NewAsp CMS Version 4.0中ask模块的0day漏洞进行一个简单分析。

一、简单分析

先从网上下载新云网站内容管理系统v4.0.0.1130,然后进入到ask目录中,我们来看register.asp这个文件,以下是该文件中对于密码提示问题及答案的代码:


可以看到只对输入是否为空进行了检查,却没有对字符串的特殊字符进行检查,不过在包含文件chkinput.asp中倒是进行了一些关于特殊符号的限制,但遗憾的是没有起到对密码提示问题及答案的限制。


我们可以看到,存储密码提示问题答案的变量answer被MD5加密了,利用价值就失去了,但存储密码提示问题的变量question却直接存入了数据库中,这就使得我们可以直接利用注册来将特殊数据写入到数据库中,但这样拿到webshell的前提是数据库必须是可以执行的(比如asp或者asa等等),幸运的是存储ask提问系统数据的恰恰是asa文件,它位于ask/data/ask_nasp.asa。

二、实战

我们在虚拟机搭建好这套CMS系统,然后打开“新云问吧”,点击“用户注册”链接来注册一个新用户。除“密码问题”外,其它的信息我们按要求正常填写即可,在“密码问题”栏中填入十摊救畲整堙壤敝瑶V三-l慵,这是一句话木马<%exute(raest("a"))%>的另一种编码形式(连接密码是“a”)。为什么要使用这样的形式呢,这里我特别说明一下,在这套CMS系统的cost.asp文件中有一个函数EncoeUtfSO,它的目的就是将一些数据(比如这里的密码提示问题)从Encode编码转换成Utf8,基于这种考虑,我们为了保证在数据库中不破坏一句话木马的原型,因此将一句话木马<%exae(reest(“a”))%>先由Utf8转换成Encode编码,这样就变成了十赫敷蠼敞瑾V三-|悔。全部信息部填写完毕后点击“立即注册”,就可以注册成功了。

QQ截图20170227142152.png

这样asp一句话木马就已经成功的写入数据库ask/data/ask_nasp.asa中了,我们来看看,一句话木马已经从十赫数台整蹉v三-|悔还原成了<%euta(rest("a"))%>。接下来要做什么,相信大家都知道吧,就是拿出一句话木马的客户端进行连接,webshell成功的拿到了。

这个漏洞非常简单,也很低级,但是在利用中我们还需要一些技巧,比如刚才的编码转换问题,如果不仔细考虑是不能成功利用的,这就告诉了我们,再简单的问题也要仔细思考,不可粗心马虎。本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。


相关推荐