小冬SEO

织梦建站首页快照被劫持、后台被挂马、入侵、窜改解决方法

2019-03-02 11:59:54 5143 织梦安全

最近想不劳而获的人越来越多,通过某些首段实现快照劫持跳转,窜改后台,植入木马文件,让我们防不胜防。织梦这个开源系统又是我们站长常用的开源建站系统,但是自身的漏洞却很多,最近小编也是被这种快照劫持和挂马搞伤心了,决定要从头到尾整改一番。

当然这里还是学习的dedehtml站长的方法(www.dedehtml.com),对师兄的分享表示感谢,这里我也总结一下整改方法。

一:准备工作

1、快照劫持情况

2、需要用到的工具:ftpNoptepad++Dreamweaver一律禁止在记事本上修改。

3、需要用到的织梦源码:http://www.dedecms.com/products/dedecms/downloads/

二:数据提取工作

1、登陆你的后台,备份数据,打包存档,FTP下载,以备不时之需。

2、复制一份备份文件出来,按以下指导操作(如果之前有备份过,可用之前css、js、htm文件替换就行,可以省很多事)。

2-1、下载一个软件D盾扫描全站,也就是根目录所有文件,下载地址:D盾官方下载 http://www.d99net.net/,网盘下载:D盾_防火墙_2.1.5.4.zip。这里能检查出部分有问题的文件,如果不是自己的文件,删除即可。

1-191202202F6.gif

2-2、每一个跟模板有关的js文件都要一一打开来细心检查,因为挂马很多在js文件中,不然你前面和后面的工作都白做了。

2-3、每一个跟模板有关的css images 文件夹下都要细心检查是否有后门文件,除了图片文件、css文件、字体文件,其他的一律删除,删错了也不用担心,有整站打包的备份在。

2-4、每一个模板htm文件都要细心检查是否有挂马代码存在,检查你的模板文件夹里是否有后门文件,比如php文件,asp文件,其他可疑的格式文件一律删除,删错了也不用担心,有整站打包的备份在。

2-5、你备份文件中的文档图片文件夹 uploads 文件夹,每一个文件夹都要打开,都要细心检查是否有后门文件,除了图片文件和你的附件,其他的一律删除,删错了也不用担心,有整站打包的备份在。

例如,在uploads文件夹里发现了一个图片木马文件,它是看不到图的,所以uploads文件夹里面的所有文件都要看一遍

1-191202202F9.gif

2-6、/data/common.inc.php /data/config.cache.inc.php 一会配合打包要用到,所以也要检查。

2-7、/include/extend.func.php /include/common.func.php 可能有二次开发的自定义方法在里面,所以也要检查。

2-8、其他你曾经二次开发修改过的文件。

3、通过第二步我们得到了以下文件

3-1、你的样式文件css(如果曾经有备份,且备份到现在没修改过,可用之前的文件替换即可,下同)

3-2、你的效果文件js(如果曾经有备份,且备份到现在没修改过,可用之前的文件替换即可)

3-3、你的模板文件htm(如果曾经有备份,且备份到现在没修改过,可用之前的文件替换即可)

3-4、你的图片文件images和uploads,images中的图片文件应该比较少,保留自己的就行;但是uploads文件中有你建站至今,发文章上传的图片,需要保留自己上传的图片文件夹。

3-5、你的后台《系统基本参数》文件/data/common.inc.php 和 /data/config.cache.inc.php

3-6、你的二次开发文件,/include/extend.func.php 和 /include/common.func.php,可能不止这两个文件,如果已经不记得了就用官方源码的,再开发一次。

三:数据替换工作

1、删除最新织梦程序包那些没用的又容易被挂马入侵的程序文件

member 会员文件夹整个删除

special 专题文件夹整个删除

install 安装文件夹整个删除

robots.txt 文件删除

删除/templets/default 官方默认模板这个文件夹

2、plus 文件夹除了以下 1个文件夹 和 5个php文件,其他的文件统统删除

/plus/img (这个文件夹)

/plus/count.php

/plus/diy.php

/plus/list.php

/plus/search.php

/plus/view.php

3、把 dede 后台文件夹改名,改复杂一点,改成爹妈都不认识它。

4、修复刚刚下载的织梦最新程序包里已知漏洞

Dedecms织梦系统自带漏洞修复10项

5、把《二:数据提取工作》处理过的以下文件放在对应的位置

/data/common.inc.php

/data/config.cache.inc.php

/include/extend.func.php

/include/common.func.php

/templets/你的模板文件夹

/uploads

其他你曾经二次开发修改过的文件

还有可能你的模板关联的css 和 js 和 images图片,这个自己看着办

四:重新上传上线

1、把主机里现在网站里的所有文件清空,不需要到mysql清除数据哦。虚拟主机的小伙伴可以借助主机面板一键清空,省事又干净。

2、把刚刚整理好的最新程序打包上传到主机里解压出来,不需要重新安装哦!

3、登录网站后台,打开 系统-系统设置-基本参数,点击确认一次,更新栏目缓存,更新系统缓存,再去生成全站。如果是伪静态就不用生成全站了。

五:后台-模块-广告管理

检查是否有挂马的广告,如果不用广告模块记得清空所有广告,或者用SQL命令一键批量删除

后台-系统-SQL命令行工具,执行

TRUNCATE dede_search_keywords;
TRUNCATE dede_myad;
TRUNCATE dede_myadtype;

六:主机或服务器环境的重要性

尽量选择linux环境的主机或者服务器

尽量选择最高PHP版本

虚拟主机尽量禁止不必要的环境参数和函数

1-191202204012.jpg1-191202204010.jpg

七:利用伪静态功能禁止以下目录运行php脚本

1、linux主机的用户一般都是apache环境,使用 .htaccess 文件来设置,如果你网站根目录已经存在这个文件,那就复制一下代码添加进去,没有这个文件的小伙伴可以下载下来放进去

RewriteEngine on
#安全设置 禁止以下目录运行指定php脚本
RewriteCond % !^$
RewriteRule a/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php|htm)$ – [F]
RewriteRule uploads/(.*).(php)$ – [F]

.htaccess 文件下载https://pan.baidu.com/s/1jNXb1kMFSeGvODCczr4T_A

2、windows主机的用户一般都是iis7、iis8环境,使用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内,没有这个文件的小伙伴可以下载下来放进去。

<rule name="Block data" stopProcessing="true">
	<match url="^data/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="data" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>
<rule name="Block templets" stopProcessing="true">
	<match url="^templets/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="templets" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>
<rule name="Block SomeRobot" stopProcessing="true">
	<match url="^uploads/(.*).php$" />
	<conditions logicalGrouping="MatchAny">
		<add input="{USER_AGENT}" pattern="SomeRobot" />
		<add input="{REMOTE_ADDR}" pattern="" />
	</conditions>
	<action type="AbortRequest" />
</rule>

web.config 文件下载https://pan.baidu.com/s/1XMmULUyJQx6TquLlkRZvmw

3、Nginx下禁止指定目录运行PHP脚本

注意:这段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后记得重启Nginx生效。

location ~* /(a|data|templets|uploads)/(.*).(php)$ {
return 403;
}

4、百度云Nginx虚拟主机,开启伪静态后,手动添加个bcloud_nginx_user.conf 放网站根目录,不会的到这里下载https://pan.baidu.com/s/1YtlyvjoSH0TSqblqbi54ww文件上传到根目录,即webroot文件夹里,然后在百度云虚拟主机控制面板重新加载服务。

八、检查静止运行文件是否生效,很重要

用 Noptepad++ 或者 Sublime Text 或者 Dreamweaver 新建一个php文件,名为1.php,里面随便打几个数字即可

 

上传到你网站的 uploads 文件夹里,然后在浏览器上打开 http://域名/uploads/1.php

生效如图:

未生效如图:


九、该投诉的投诉处理,如:快照、腾讯电脑管家,结束。

版权保护: 本文由小冬SEO编辑发布,转载请保留链接: http://www.myseoyh.cn/cms/dedesafe/64.html