前言:

最近两个月,有客户反应,打开官方网站后会自动跳转到其他网页,一开始我以为是他们那边的DNS被劫持了,没怎么重视,过了1周客户又提到这个问题,我才觉得得确认一下了。

一开始我没清理浏览器网站缓存,所以没发现这个异常。/(ㄒoㄒ)/~~

现象:

打开客户网站后,大约1s后会自动跳转到https://fr1.readytocheckline.com/ykDZbM,在Virtual tool 查了一下,这url确实有问题

网站架构:

WordPress+Mysql

解决思路:

一方面是要检查数据库有没有被插入异常代码,一方面检查插件有没有异常,比如Code snnippets这种的,另外还要把网站目录下有问题的文件删除或者文件内的恶意代码删除。

如果想知道当时是怎么被拿下的,就需要去看Cloudflare 的WAF 和 你服务器 Nginx 的log 咯,这个后面再说。

停止插件的缓存功能,清除缓存,CDN的缓存也一起清除。

分步操作:

在进行操作前,请务必对你的网站进行备份,虽然许多服务商都有提供备份功能,但是建议你还是将网站压缩并保存到本地。

第一步,先用https://sitecheck.sucuri.net 意思意思,这个工具可以从外部扫描你的网站,如果发现有恶意代码或者恶意行为,它会爆出来的,你可以将它的结果作为参考依据。

将网址填入其中,点击Scan Website 即可

第二步,进入你的网站后台,打开Wordfence插件,这个是很著名的Wordpress 安全插件,可以用于扫描网站中有异常代码的文件。

根据提示,对每个Critical 和 High 还有 Medium 的告警进行处理,有些文件是可以直接删除的,对于一些受到感染的Wordpress核心文件,我们不能够直接删除,需要根据提示,找到那个文件并进行编辑,删除恶意代码。

第三步,如果你的网站安装了类似Code snnippets 之类插入代码的插件,那你就需要小心了,务必查看有没有奇怪的代码片段,一般我们只是为了方便插入统计代码或者广告代码,如果你发现有其他的代码,请核实是否恶意代码,如果是的话,将其删除。

到这一步,似乎我们已经完成了所有工作,但是请不要开心得太早,不要忽略数据库!你的网站必定会从数据库存取信息,所以,我们得检查数据库有无被感染!

第四步,通过phpMyAdmin打开wordpress的数据库,检查是否有恶意代码。

执行

SELECT * FROM wp_posts WHERE post_content LIKE ‘%<script%’;

这一步是为了检查 WordPress 的 wp_posts 表中所有 post_content 列中包含 <script 字符串的记录。

这样可以查找出帖子内容中是否存在潜在的 XSS(跨站脚本攻击)或恶意代码。因为 <script> 标签通常用于嵌入 JavaScript,可能会被攻击者利用。

执行

SELECT * FROM wp_posts WHERE post_content LIKE ‘%iframe%’;

这条 SQL 语句的作用是从 WordPress 的 wp_posts 表中查询所有 post_content 列中包含 iframe 字符串的记录。

iframe 通常用于嵌入外部内容,比如 YouTube 视频、Google 地图或者第三方小部件。不过像 <iframe> 这样的标签可能会被恶意利用(比如嵌入钓鱼页面或恶意网站)。

执行

SELECT * FROM wp_posts WHERE post_content LIKE ‘%eval%’;

这条 SQL 语句的作用是从 WordPress 的 wp_posts 表中查询所有 post_content 列中包含 eval 字符串的记录。

eval 是 JavaScript 和 PHP 中的一个函数,常用于动态执行代码。只要涉及到eval ,我们就需要提高警惕了,之前从某个文章中看到,wordpress本身是不需要用这个函数的(插件的情况我不清楚),所以,通过eval也可以筛选恶意代码。

把数据库的恶意代码清除后,现在就干净多了,用https://sitecheck.sucuri.net 再次扫描,此时恶意代码应该都被清除。

但不要高兴太早,观察多几天,多方面,多维度地再次检查网站,确定威胁清除后,务必再次完整备份网站及服务器。

Leave a Reply