ECMS清除挂马以及后台升级实战(从ecms6.6~ecms7.0)
当时状况
Windows Server 2008 R2 Enterprise + 帝国CMS6.6 + MySql
server软件: |
Microsoft-IIS/7.5 |
操作系统: |
WINNT |
PHP版本号: |
5.3.18 |
MYSQL版本号: |
5.0.81-community-nt |
全局变量: |
关闭 (建议关闭) |
魔术引用: |
关闭 (建议开启) |
上传文件: |
能够 (最大文件:2M,表单:8M) |
当前时间: |
2014-05-30 14:11:57 |
使用域名: |
xxxx.com |
|
|
server被挂马,后台版本号较老,存在继续被攻击的潜在威胁。
处理过程
首先存在的两个最棘手的问题:
1. 怎样清掉眼下大量的挂马;
2. 为了后台安全系数更高,怎样对当前后台进行升级;
首先清马:
由于大家能够看到,清垃圾文件前后的差距实在是非常的巨大。可见垃圾已经到了无处不在的地步,为了尽量把垃圾清完。我们採用正面挑选的方式。从网络上找到ECMS6.6全部的系统文件夹结构,这一点能够从官方公布的二次开发手冊里头找到。我仅仅是大概的列出当中的文件:
例如以下列表摘自《帝国CMS二次开发手冊》
/ 系统根文件夹
├d/ 附件和数据存放文件夹 (data)
│├file/ 附件存放文件夹
│├js/ JS调用生成文件夹
│└txt/ 内容存文本存放文件夹
├e/ 系统程序文件夹 (empire)
├html/ 自己定义内容页存放预设文件夹
├images/ 默认模板图片文件夹
├s/ 专题文件夹 (special)
├search/ 高级搜索页面文件夹
├skin/ 模板CSS和图片存放文件夹
├testdata/ 内置測试数据的附件文件夹 (安装时选择測试数据用的,不内置測试数据能够删除)
└index.html 站点首页
/e/ 系统程序文件夹
├action/ 信息动态列表页和内容页文件夹
├admin/ 后台文件夹 (可重命名)
├class/ 系统核心文件文件夹
├data/ 系统处理数据相关文件夹 (暂时文件、缓存等)
├DoInfo/ 前台会员管理信息文件夹 (页面模板e/template/DoInfo)
├DoPrint/ 打印页面文件夹
├DownSys/ 下载系统模型功能文件夹 (页面模板e/template/DownSys)
├enews/ 前台处理数据入口文件
├extend/ 扩展程序文件夹
├ftp/ FTP识别文件夹
├install/ 安装程序文件夹,安装后请删除掉
├member/ 前台会员功能文件夹 (页面模板e/template/member)
├message/ 提示信息页面文件夹
├NewsSys/ 新闻系统模型功能文件夹
├payapi/ 在线支付接口文件夹 (页面模板e/template/payapi)
├pl/ 评论页文件夹
├public/ 公用功能程序文件夹 (页面模板e/template/public)
├sch/ 全站全文搜索生成文件夹
├search/ 普通搜索文件文件夹
├ShopSys/ 商城系统模型功能文件夹 (页面模板e/template/ShopSys)
├ShowKey/ 前台验证码文件文件夹
├space/ 会员空间文件夹 (当中template为会员空间模板文件夹)
├tags/ TAGS列表文件文件夹
├tasks/ 计划任务脚本存放文件夹
├template/ 前台动态页的模板文件夹
├tool/ 插件相关功能文件夹 (页面模板e/template/tool)
├update/ 升级程序文件夹 (升级程序拷贝到这个文件夹执行)
├ViewImg/ 显示图片大图文件夹
├wap/ WAP功能文件夹 (当中template为WAP模板文件夹)
└web/ RSS显示文件文件夹
/e/template/ 动态页面模板文件夹
├DoInfo/ 前台投稿模板文件夹 (相应程序文件夹:/e/DoInfo/)
│├AddInfo.php 公布投稿页面模板 (相应程序文件:/e/DoInfo/AddInfo.php)
│├ChangeClass.php 公布投稿选择栏目页面模板 (相应程序文件:/e/DoInfo/ChangeClass.php)
│├DoInfo.php 管理投稿首页页面模板 (相应程序文件:/e/DoInfo/index.php)
│└tran.php 公布投稿上传附件页面模板 (相应程序文件:/e/DoInfo/tran.php)
├DownSys/ 下载模型页面模板文件夹 (相应程序文件夹:/e/DownSys/)
│└report.php 提交错误报告页面模板 (相应程序文件:/e/report/index.php)
├member/ 会员中心模板文件夹 (相应程序文件夹:/e/member/)
│├memberlist/ 会员列表页面模板文件夹 (相应程序文件:/e/member/list/index.php)
│├mspace/ 管理会员空间页面模板文件夹 (相应程序文件夹:/e/member/mspace/)
││├ChangeStyle.php 选择空间模板页面模板 (相应程序文件:/e/member/mspace/ChangeStyle.php)
││├feedback.php 管理会员空间反馈页面模板 (相应程序文件:/e/member/mspace/feedback.php)
││├gbook.php 管理会员空间留言页面模板 (相应程序文件:/e/member/mspace/gbook.php)
││├ReGbook.php 管理会员空间留言回复页面模板 (相应程序文件:/e/member/mspace/ReGbook.php)
││├SetSpace.php 设置会员空间页面模板 (相应程序文件:/e/member/mspace/SetSpace.php)
││└ShowFeedback.php 管理会员空间反馈显示反馈页面模板 (相应程序文件:/e/member/mspace/ShowFeedback.php)
│├AddFava.php 添加收藏页面模板 (相应程序文件:/e/member/fava/add/index.php)
│├AddFriend.php 添加好友页面模板 (相应程序文件:/e/member/friend/add/index.php)
│├AddMsg.php 发送站内信息页面模板 (相应程序文件:/e/member/msg/AddMsg/index.php)
│├buybak.php 购买记录页面模板 (相应程序文件:/e/member/buybak/index.php)
│├buygroup.php 购买充值类型页面模板 (相应程序文件:/e/member/buygroup/index.php)
│├card.php 点卡充值页面模板 (相应程序文件:/e/member/card/index.php)
│├ChangeFriend.php 选择好友页面模板 (相应程序文件:/e/member/friend/FriendClass/index.php)
│├ChangeRegister.php 选择注冊会员组页面模板 (相应程序文件:/e/member/register/ChangeRegister.php)
│├cp.php 会员中心首页页面模板 (相应程序文件:/e/member/cp/index.php)
│├downbak.php 消费记录页面模板 (相应程序文件:/e/member/downbak/index.php)
│├EditInfo.php 改动资料页面模板 (相应程序文件:/e/member/EditInfo/index.php)
│├EditSafeInfo.php 改动安全资料页面模板 (相应程序文件:/e/member/EditInfo/EditSafeInfo.php)
│├fava.php 管理收藏页面模板 (相应程序文件:/e/member/fava/index.php)
│├FavaClass.php 管理收藏分类页面模板 (相应程序文件:/e/member/fava/FavaClass/index.php)
│├friend.php 管理好友页面模板 (相应程序文件:/e/member/friend/index.php)
│├FriendClass.php 管理好友分类页面模板 (相应程序文件:/e/member/friend/FriendClass/index.php)
│├getpass.php 取回password重置页面模板 (相应程序文件:/e/member/GetPassword/getpass.php)
│├GetPassword.php 取回password页面模板 (相应程序文件:/e/member/GetPassword/index.php)
│├login.php 会员登录页面模板 (相应程序文件:/e/member/login/index.php)
│├loginopen.php 弹出页面提示又一次登陆页面模板 (相应程序文件:/e/member/login/login.php)
│├msg.php 管理站内信息页面模板 (相应程序文件:/e/member/msg/index.php)
│├my.php 我的状态页面模板 (相应程序文件:/e/member/my/index.php)
│├register.php 会员注冊页面模板 (相应程序文件:/e/member/register/index.php)
│├regsend.php 注冊激活帐号页面模板 (相应程序文件:/e/member/register/regsend.php)
│├ShowInfo.php 查看会员资料页面模板 (相应程序文件:/e/member/ShowInfo/index.php)
│└ViewMsg.php 查看站内信息内容页面模板 (相应程序文件:/e/member/msg/ViewMsg/index.php)
├payapi/ 在线支付页面模板文件夹 (相应程序文件夹:/e/payapi/)
│└payapi.php 在线支付页面模板 (相应程序文件:/e/payapi/index.php)
├public/ 公共程序页面模板文件夹 (相应程序文件夹:/e/public/)
│└vote.php 信息投票结果页面模板 (相应程序文件:/e/public/vote/index.php)
├ShopSys/ 商城模型页面模板文件夹 (相应程序文件夹:/e/ShopSys/)
│├buycar.php 购物车页面模板 (相应程序文件:/e/ShopSys/buycar/index.php)
│├ListDd.php 管理商城订单页面模板 (相应程序文件:/e/ShopSys/ListDd/index.php)
│├order.php 订单提交表单页面模板 (相应程序文件:/e/ShopSys/order/index.php)
│├ShowDd.php 查看商城订单内容页面模板 (相应程序文件:/e/ShopSys/ShowDd/index.php)
│└SubmitOrder.php 订单提交终于确认页面模板 (相应程序文件:/e/ShopSys/SubmitOrder/index.php)
└tool/ 内置插件模板文件夹 (相应程序文件夹:/e/tool/)
└vote.php 投票插件结果页面模板 (相应程序文件:/e/tool/vote/index.php)
首先我们又一次安装一个6.6版本号的ECMS,由于更新的7.0版本号根本无法兼容6.6的数据库,
所以没办法早早地进行升级。装好新的ECMS之后,我们对这个版本号进行尝试。挑出我们真正须要的站点文件和文件夹。上面列出的文件数量是比較少的,并且方便筛选。首先我们从老的数据里头把这些文件夹拷贝出来,拷贝到新的文件夹下,并且对大小有异常的文件夹进行检查,删除掉当中的异常文件夹和多余的垃圾文件。这样,我们就初步获得了,我们须要的文件。这个过程并不须要针对全部的文件夹进行查看,仅仅须要针对上面列出的文件夹。由于站点根文件夹下有不少文件夹都是后来由后台生成的。
有了这些基础文件之后,首先我们尝试装ECMS7.0,看是否能直接兼容ECMS6.6的数据,事实证明。这个过程中由于两个版本号的数据库文件有着巨大的区别,而以失败告终。中间有个小插曲,为了让ECMS6.6的数据库能兼容到ECMS7.0,还自作主张的给6.6加入了一些字段,可是后来发现区别远远超过5个表字段,仅仅能以放弃告终,可是由于我改了数据库的表结构。还导致我后面一次从6.6到7.0的正常升级失败(在已经有某个表字段的表中加入同样字段)。再加上我没有记录表结构改动,又非常挫的在280+个表里头找哪些字段有改动。真是悔不当初。建议大家吸取教训。千万不要为了让两个版本号表结构统一擅自改动,否则后果真的非常严重。
清理前后的文件大小比較:
建议不要在实际的生产环境下做操作,由于过程比較复杂,一个小时基本上就能把人搞得晕头转向,这样的情况下假设出现生产环境的误删。误改动也非常easy。所以一定要在自己的測试环境下进行。本人的測试环境就是本人自己的机器。
大体上,我把全部的工作分为四个步骤:
1. 把之前挑选出来的站点文件拷贝到測试环境,并作备份。能够在随时出异常的时候进行覆盖。主要包括两类文件,一个是根文件夹下的文件,另一个就是数据库文件。
2. 网络上找到ECMS6.6的安装包,并依照说明安装6.6的ECMS。
3. 下载从6.6升级到7.0的升级包,依照升级说明替换眼下的环境,并对文件夹权限进行设置;
4. 从ECMS6.6往ECMS7.0进行升级;
在数据量非常小的情况下。上面的过程都比較easy完毕,可是在数据量较大的时候,这些工作完毕起来就非常耗时,并且有一种“等了这么多时间。假设还不行。怎么办”的焦灼感。比較煎熬。
分步骤描写叙述
第一步,事实上没什么好说的,主要是压缩。拷贝,解压缩的过程,同一时候要把数据文件和数据库文件一起拷贝。
第二步。网上非常难找到6.6的一键安装包。说来奇怪。phome上明显标示的是6.6的一键安装包。可是实际上链接的还是最新的7.0版本号,实在是无法理解了,最后没办法,单独下载的6.6的安装包进行安装。
第三步。这个过程中比較纠结的是win2008的文件夹覆盖和合并功能。这个系统默认用两个文件夹合并成一个新的文件夹,这个规矩真实让人“側目”,好像跟之前的文件夹覆盖全然不同了。同一时候windows下设置文件夹和文件的777权限也比較麻烦,首先要在文件夹属性中加入everyone用户,然后给everyone用户读取。改动,执行等权限。
第四步,也是最揪心的环节,由于这个环节出错,基本上面临着必须从第一步又一次再做一次。我每重做一次的时间大概是40分钟。数据量比較大。再加上中间倒点水,有人干扰一下,基本上每次都须要几乎相同一个小时。还不能出错。假设再出错。排错。这个过程就远超过1小时了,非常悲催。
这个过程中出现过各种错误。尤其是数据库方面的错误,比方说连不上数据库,或者机器ip地址不能訪问后台(不在可訪问后台的IP列表里)等,当中大部分错误都能够在config.php中解决,特别提醒的是6.6和7.0的config.php文件所在文件夹是不同的,6.6在\e\class\文件夹下,7.0在\e\config\文件夹下.
这个文件里三处常常面临调试改动:
1. 数据库配置:
//数据库设置
$phome_use_db='mysql'; //数据库类型
$phome_use_dbver='5.0'; //数据库版本号
$phome_db_server='localhost'; //数据库登陆地址
$phome_db_port=''; //端口。不填为按默认
$phome_db_username='root'; //数据库username
$phome_db_password=''; //数据库password
$phome_db_dbname='abcdb'; //数据库名
$phome_db_char='gbk'; //设置默认编码
$phome_db_dbchar='gbk'; //数据库默认编码
$dbtbpre='phome_'; //数据表前缀
$ecmslang='gb'; //语言包
这里数据库的配置,要跟当时在安装完毕ECMS6.6时设置的password为准,同一时候在Navcat等工具里头。能够进行新增和删除数据库连接,新增数据库的名称,username。password都须要后面保存到如上配置中,方便ecms訪问数据库。这个配置相似于之前遇到的建立ODBC连接之类的。仅仅是过程比之前的更简单。
2. 'loginnum'=>5,
在账户连续5次输错password之后。系统会自己主动被锁定一小时(好像是这个时间),一小时之后才干登录。
3. 'closeip'=>'',
'openip'=>'',
'hopenip'=>'',
能连接到ecms后台的ip地址范围,假设后台当下不能登陆,须要把上面三个全部设置为空。然后还须要进入后台以后立即改动,详细例如以下图,假设不及时改动的话,兴许非常可能在刷新时自己主动恢复config.php的配置,我在这个环节也吃过亏。在从6.6到7.0升级过程中,突然出现所在ip地址是prohibited的情况。坑,至少多浪费一个小时。
所以要在config.php和后台两处一起改,一个都不能少。
最后总结
1. Web开发有一点好就是不会改动主机的配置。这样在本地把全部配置好,调试通以后,就能够直接往server上搬。不须要再进行繁琐的配置。这点非常好。
2. 经过这么一折腾,尽管耗了两三天的时间,可是一下子对ecms的升级。备份。数据库。后台有了比較全面的了解,以后即使管server和数据库的人不在,也基本上能一个人拿下这些事情。
ECMS清除挂马以及后台升级实战(从ecms6.6~ecms7.0)的更多相关文章
- Web挂马方式整理
一:框架挂马 <iframe src=地址 width=0 height=0></iframe> 二:js文件挂马 首先将以下代码 document.write("& ...
- Webshell清除-解决驱动级文件隐藏挂马
Webshell清除-解决驱动级文件隐藏挂马
- 记一次挂马清除经历:处理一个利用thinkphp5远程代码执行漏洞挖矿的木马
昨天发现 一台服务器突然慢了 top 显示 几个进程100%以上的cpu使用 执行命令为 : /tmp/php -s /tmp/p2.conf 基本可以确定是被挂马了 下一步确定来源 last 没有 ...
- wordpress网站被挂马以及防御方法
wordpress本身的安全性是非常的高的,一般不会被轻易的破解,被挂马,但是我们也不能够过度迷信wordpress的安全性,凡是连接上互联网的服务器和电脑,都存在被破解的风险性.所以我们在日常维护自 ...
- 织梦Dedecms容易被挂马文件以及可疑文件汇总
1. 被植入木马,然后网站打开后自动弹出博彩,赌博,色情网站,一般这种病毒的特征代码如下 二.织梦CMS被挂马清理方法 1.删除增加的管理员service.spider等用户名. 2.删除根目录的as ...
- 织梦CMS被挂马特征汇总
一.织梦CMS被挂马特征汇总 2013织梦CMS被挂马特征汇总.最近很多朋友反应后台多了几个系统管理员用户:service.spider等,而且自己之前的管理员用户登陆时候会提示用户名不存在.还有朋友 ...
- 织梦dedecms修改include和plus重命名提高安全性防漏洞注入挂马
织梦dedecms是新手站长使用得比较多的一个建站开源程序,正因如此,也是被被入侵挂马比较多的程序.下面就来跟大家说一下怎么重新命名dedecms的include文件夹以及plus文件夹来提高网站的安 ...
- 阿里云云开发平台助力风变科技Serverless架构升级实战
阿里云云开发平台助力风变科技Serverless架构升级实战 背景 风变科技 一个希望通过技术去推动下一代基础教育的组织.旗下产品包括第一代的熊猫书院(读书类产品).第二代的熊猫小课(泛学科综合学习平 ...
- JS挂马攻防
JS挂马攻防实录 攻现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行(图1), ...
随机推荐
- Django框架(二十一)—— Django rest_framework-权限组件
目录 Django rest_framework-权限组件 一.权限组件的使用 1.使用语法 2.全局使用.局部使用.局部禁用权限 二.源码分析 1.Book中没有as_view 2.APIView的 ...
- MFC DLL 导出函数的定义方式
一直在鼓捣DLL,每天的工作都是调试一个一个的DLL,往DLL里面添加自己的代码,但是对于DLL一直不太了解啊!今天一查资料,才发现自己对于DLL编写的一些基本知识也不了解.要学习,这篇文章先总结DL ...
- 去BAT面试完的Mysql面试题总结(55道,带完整答案)
1.一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ? 2.mysql的技术特点是什 ...
- ZABBIX 忘记登录密码
ZABBIX 忘记登录密码 摘要 有些童鞋会忘记zabbix的登陆密码,今天给大家写一篇找回登陆密码~ ZABBIX 忘记登录密码 zabbix 刚刚在群里吹牛逼,由于账号比较多,脑子容易 ...
- __user表示是一个user mode的pointer,所以kernel不可能直接使用。
__user表示是一个用户空间的指针,所以kernel不可能直接使用. #ifdef __CHECKER__# define __user __attribute__((noderef, addres ...
- 10个艰难的Java面试题与答案
10个最难回答的Java面试题 这是我收集的10个较难回答的 Java 面试题.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.这些问题都是容易在各种 Java 面试中被问到 ...
- ac自动机fail树上按询问建立上跳指针——cf963D
解法看着吓人,其实就是为了优化ac自动机上暴力跳fail指针.. 另外这题对于复杂度的分析很有学习价值 /* 给定一个母串s,再给定n个询问(k,m) 对于每个询问,求出长度最小的t,使t是s的子串, ...
- Delphi 2010 XE 中使用 JSON 之 SuperObject68-6
JSON之SuperObject(1):一直盼着Delphi能够直接支持"正则:Delphi2009刚来的时候,有了JSON,但:Delphi2010带了两个相关单元:DBXJS:我想不等了 ...
- div + css 边框 虚线
div + css 边框 虚线 dotted:[点线|有点的|点线式边框|点虚线] .introduce { border:1px dotted gray; margin:8px 5px 8px 10 ...
- (3)Redis conifg
redis.windows-service.conf Redis-x64-3.2.100 # Redis configuration file example # Note on units ...