发掘MaosinCMS网站系统漏洞与测试
最近的动易cms漏洞可以说着实火了一把,本文写的cms虽然没有动易功能强大,但同样存在注入漏洞。这种漏洞用工具是扫不到的,可以说注入已经由显式转为隐式了,必须查看源代码才有可能发现潜在的漏洞。
适合读者:入侵爱好者前置知识:无发掘maosincms网站系统漏洞 舒城李寅♂(梦幻★剑客) 最近的动易cms漏洞可以说着实火了一把,本文写的cms虽然没有动易功能强大,但同样存在注入漏洞。这种漏洞用工具是扫不到的,可以说注入已经由显式转为隐式了,必须查看源代码才有可能发现潜在的漏洞。 本地测试漏洞 在本地架设好iis,界面还算美观了。不过想利用这个注入点,首先需要注册个普通用户。黑防曾经发表过一篇发现“注册型注入点”的文章,这个系统的注入漏洞也基本属于这个类型的。注册登录后的界面感觉是从乔客系统修改过来的,其中有个“发布新闻”功能,我这里就随便填入内容点提交后成功发布。到这里程序都不存在任何问题,可是还有个“管理发布新闻”功能,用户在这里可以对自己发布的内容执行修改和删除,恰好在修改这里,参数没有过滤导致我们注入成功。 注意地址栏中传递的参数是数字型的,注入我最喜欢数字型的了。看到是在user_publish.asp文件出了安全问题,翻看代码发现真正的漏洞代码不在user_publish.asp文件中,而是调用了user_news.asp文件,其部分代码如下。
从代码中很容易理解exists(,首先是定义一个子过程modifynews()函数,以便随时调用,而函数主体代码变量id直接由get方式获取,没有经过任何函数过滤,就放入记录集中进行sql查询,从而造成注入漏洞。既然漏洞已经产生,我们就来实际测试一下。对于简单的注入,我就直接交给了啊d,可是发现啊d竟然报这个注入点不能注入,看来靠工具是不成了,还是自己手工来吧。 首先在地址栏中输入“and select * from ms_admin)”来判断是否存在“ms_admin”表,返回正常,说明存在ms_admin表;接下来用order by 语句判断字段长度,直到“order by 24”返回正常,说明字段长度为24,再用联合查询来暴密码和账户,执行“and 1=2 union select 1,2,3,adminname,5,6,adminpass,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from ms_admin”成功暴出密码和账户。 后来我在看其他文件的时候,又发现除了管理新闻这里存在漏洞外,管理图片也存在同样的漏洞。user_pic.asp文件中的部分代码如下。
这套cms系统除了这两个漏洞外都很安全,可惜千里大堤,溃于蚁穴。拿到账户和密码进后台发现功能很强大,有数据库备份和上传功能,还可以直接执行sql命令。在上传设置选项中添加个asp。再回到前台上传asp木马,就可拿到webshell了。 网络测试 本想对安徽大学思科网络学院做测试的,结果后台找不到,就放弃了,在网络上找了一个“湖南湘潭设计艺术家协会”站点来测试,和本地演示一样,注册用户后发布文章,直接执行sql命令,很轻松地暴出了账户和密码。让我大跌眼镜的是,密码和账户竟然是默认的admin和admin888,可见这个网站的管理员连最基本的安全知识都不具备。进入后台,添加asp后缀名来上传asp木马,同样也可以利用备份数据库获得webshell。我这里直接上传asp木马就拿到了webshell。 拿到webshell后发现权限比较小,只能在站点目录下跳转,但是可以执行cmd命令,没有将wscript.shell组件去掉。由于本站是在*站点下建的子目录,所以我就没有再继续下去。文章写到这里就结束了,最后祝大家在新的一年里技术更进一步。