emcms是国内第一个开源外贸的网站管理系统,目前大多数的外贸网站都是用的semcms系统,该系统兼容许多浏览器,像IE,google,360极速浏览器都能非常好的兼容,官方semcms有php版本,asp版本,我们SINE对其安全检测的同时发现该系统存在高危的网站漏洞,该漏洞影响版本semcms 2.6 2.7 2.8,包括目前最新的semcms 3.2版本漏洞。
我们来下载最新版本的semcms系统到我们本地电脑,打开发现网站采用的是php+mysql架构开发的系统,phpstudy配置PHP环境以及mysql数据库环境,网站搭建起来,如下图,这个是前端:
这个是网站的后台系统:
该漏洞是在网站产品的留言功能里发现的,存在着XSS跨站漏洞,点击询盘我们抓包来看下数据包里的内容,发现可以更改tile标题这个值,通过修改留言标题的这个值我们伪造发送到服务器端去,并随即登录网站后台查看到留言,并执行了我们的XSS代码,构造的代码如下:
title=安全测试
"><img>&content=88888888&Company=&Name=8888888&mail=8888888qq.com&Phone=13888888888&Fax=&Region=9999999999&Home=&yzm=6789&Submit=Submit
我们直接post过去,看到html标签栏里是否存在xss漏洞,semcms已经过滤了一些常用的XSS代码,所以一些简单的弹窗测试漏洞都屏蔽了,只能使用一些加密的特殊xss跨站代码。我们来构造一下可以获取管理员的cookies值的一个代码:
当我们发送过去后,发现网站会过滤掉一些//号,但是可以编码64位加密绕过直接post提交过去。加密可以绕过的代码:
发送过去我们发现提交成功并成功获取到了网站的管理员cookies值,我们利用cookies进行登录
后台,然后就可以上传任何文件了。
网站漏洞修复防范措施
针对于此semcms漏洞修复的防范措施要过滤一些xss跨站攻击代码 对于post数据包的过滤,要再程序代码的接收端进行过滤或转义,或对网站后台目录进行二级目录系统验证及时获取了cookies值也无法利用!如果对程序代码程序不熟悉的话建议找专业做网站安全的公司来处理解决。