写在开头:本次被挂马的问题都是基于下面这篇文章解决,此处只是对其做一个整理和记录
解决方案原文:pbootcms被挂马了如何处理-AB模板网
二、问题解决
(一)补救措施
如果被挂马的代码在服务器,则需要将有问题的代码下载下来净化
如果被挂马的代码在本地,则直接净化代码即可
第一步:获取官方程序
到pbootcms官方下载最新的程序
注意:有些时候下载的程序可能不是官方的最新版本,比如在发布这篇文章时官方下载的版本为
3.2.4
,但是后台实际最新版本为3.2.5
。如果下载的不是最新版本只需要登录后台更新即可。
第二步:替换网站文件夹
将被挂马的源文件中的对应文件夹替换掉官方的文件夹即可
- 注意:以下提到的文件夹中不会出现
php
文件,记得查看每一个文件夹及其子文件夹,若出现php
文件则代表是病毒,需要删除 - 需要替换的文件夹
/data/
:数据库文件夹/skin/
:样式文件夹,用于存放CSS代码、JS代码和一些代码中会用到的图片/m/
:独立手机端样式文件夹,类似于/skin/
/pc/
:独立PC端样式文件夹,类似于/skin/
/static/
:①/static/backup/
用于存放数据库备份文件;②/static/upload/
用于存放用户上传的图片、视频等文件/style/
:不常出现,可能类似于/skin/
/template/
:用于存放网站html模板文件/upload/
:不常出现,可能类似于/static/upload/
第三步:替换并配置数据库文件
- 在替换数据库文件时,需要选择日期最新、文件大小最大的文件替换官方的数据文件
- 将替换后的数据库文件名复制下来,打开
/config/database.php
文件,替换第14行代码'dbname' => '/data/pbootcms.db'
中的pbootcms.db
<?php
/**
* 主数据库连接参数,未配置的参数使用框架惯性配置
* 如果修改为mysql数据库,请同时修改type和dbname两个参数
*/
return array(
'database' => array(
'type' => 'sqlite', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
'host' => '127.0.0.1', // 数据库服务器
'user' => 'pboot', // 数据库连接用户名
'passwd' => '123456', // 数据库连接密码
'port' => '3306', // 数据库端口
// 'dbname' => 'pbootcms' // 去掉注释,启用mysql数据库,注意修改前面的连接信息及type为mysqli
'dbname' => '/data/pbootcms.db' // 去掉注释,启用Sqlite数据库,注意修改type为sqlite
)
);
第四步:查看模板代码中是否有病毒代码残留
打开/template/
文件夹中查看index.html
文件的TDK(标题、描述、关键词)是否被篡改,若被篡改则替换以下代码即可
<title>{pboot:sitetitle}</title>
<meta name="keywords" content="{pboot:sitekeywords}">
<meta name="description" content="{pboot:sitedescription}">
将净化好的网站源代码重新上传服务器即可(记得清空服务器中网站根地址中的所有文件,以防病毒残留)
到此,补救措施就算是完成了。
(二)预防措施
预防措施原文地址:pbootcms模板如何做好防护
第一步:升级后台至最新版
==后台需要升级到最新版!!!==
第二步:重新配置数据库文件
- 重命名:修改
/data/
数据库文件夹名以及/data/pbootcms.db
数据库文件名,任意修改即可,避免使用默认的文件夹名和文件名- 比如:将
/data/pbootcms.db
修改为/mydatabase/Thisismydatabase.db
,其中,文件夹名修改为了mydatabase
,文件名修改为了Thisismydatabase.db
- 比如:将
- 配置数据库文件:将替换后的数据库文件名复制下来,打开
/config/database.php
文件,替换第14行代码'dbname' => '/data/pbootcms.db'
中的'/data/pbootcms.db'
,将其修改为上一步重命名的文件夹名和文件名- 比如:将第14行代码
'dbname' => '/data/pbootcms.db'
修改为'dbname' => '/mydatabase/Thisismydatabase.db'
- 比如:将第14行代码
<?php
/**
* 主数据库连接参数,未配置的参数使用框架惯性配置
* 如果修改为mysql数据库,请同时修改type和dbname两个参数
*/
return array(
'database' => array(
'type' => 'sqlite', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
'host' => '127.0.0.1', // 数据库服务器
'user' => 'pboot', // 数据库连接用户名
'passwd' => '123456', // 数据库连接密码
'port' => '3306', // 数据库端口
// 'dbname' => 'pbootcms' // 去掉注释,启用mysql数据库,注意修改前面的连接信息及type为mysqli
'dbname' => '/data/pbootcms.db' // 去掉注释,启用Sqlite数据库,注意修改type为sqlite
)
);
第三步:重命名后台文件
重命名:将后台文件/admin.php
修改为任意名称即可,如/root.php
,之后登录后台时只需要输入网址域名/root.php
即可
第四步:修改服务器中文件夹的访问权限
- 权限设置:555权限(禁止写入)
- 需要配置的文件夹:
/apps/
/core/
/m/
/skin/
/style/
第五步:修改robots.txt
将其中的代码修改为如下代码:
User-agent: *
Allow: /
Disallow: /ad*
Disallow: /static/*
Disallow: /api/*
Disallow: /?*
Disallow: /app*/
Disallow: /app
写在最后:原本已经把补救措施写好了,但是网页刷新没了!!!🤦♂️很难受,原本以为篇幅不长就懒得在本地写了,果然不能有侥幸心理。
如果有些地方说的不准确的地方欢迎指正
Comments | NOTHING