上个月我们接触到一个客户反馈的问题:网站打开一切正常,访客也看不出异常,但

搜索结果里显示的却不是正常标题和摘要,而是赌场、、药品之类的垃圾内容。
更离谱的是,这些内容没有出现在首页或文章页,而是出现在:About
Us、Contact
Conditions等位置。
这些页面通常几年都不动一次,突然被污染,基本可以确定:不是普通的内容篡改,而是更隐蔽的“伪装型”攻击。
这就是我们这篇文章中要讲到的Shadow
Directories(影子优先级,直接劫持
WordPress
固定链接(Permalink)?
WordPress
的固定链接,就是你文章或页面的“永久地址”,例如:https://example.com/about-us/
它和早期那种硬编码链接(例如
?p=103)区别很明显:
1.固定链接更易读、更利于
SEO
2.结构更稳定、可随设置调整
3.通常由
WordPress
的重写规则统一接管
重点是:在很多站点里,/about-us/
这种路径并不是服务器上真实存在的文件夹,它只是“虚拟路径”,最终仍交给
WordPress
来渲染页面。
我们一开始为什么查不到问题所在
客户使用的是Hostease的服务器,我们先检查了服务器相关安全设置,一切正常。
然后按正常思路,又进
wp_posts,也没有问题,再看页面源代码:也没看到明显注入。
到这里就很难不让人怀疑,是不是Google抽风了?
直到我们试着把浏览器的
User-Agent
页面,原本正常的公司介绍,瞬间变成了完整的垃圾页。
这时候就可以确定:
网站在“识别访问者身份”,对搜索引擎展示垃圾内容,对普通用户展示正常内容。
这类行为通常被称为
Cloaking(伪装/障眼法)。
影子后,发现了异常点:站点里居然出现了这些“真实名,和WordPress
固定链接一模一样。
正常情况下,一个标准
WordPress
才交给重写规则(WordPress)处理
于是当请求
/about-us/
甚至都没机会接管请求。
你后台页面再干净、数据库再正常也没用——请求根本没走到
WordPress
那一层。
影子里,我们都看到非常一致的三件套:
1.index.php:控制器(决定给谁看什么)
2.indexx.php:正常页面的“干净副本”
3.readme.txt:垃圾页面的完整源码(通常非常长)
它的工作逻辑很简单,但很阴:
当访问者像“搜索引擎爬虫”
index.php
识别到
输出整页垃圾内容,让搜索引擎收录。
/>
当访问者像“人”
index.php
include
indexx.php(正常页面的静态副本)→
你看到的网站“完全正常”。
于是你会遇到最头疼的场景:你自己和用户看网站完全没有问题,但是搜索引擎看到的就是网站。
/>
这种攻击的危害:不是“挂马”,而是“SEO
毒化”
影子出现与固定链接同名的真实文件夹
5.同名文件夹里有
index.php
这种组合
我们是怎么修复的?(可直接照做)
第一步:删除影子全部删除(连同里面的恶意文件)。第二步:核对核心文件完整性
重点检查以下文件是否被篡改,是否有多余的include/外链:
index.php
.htaccess
wp-config.php
第三步:清理账户与权限
删除可疑管理员(尤其是叫
help
之类的)
检查文件权限,避免上传结构”也纳入日常检查。


