内容提要
博客三个月内三次被黑,攻击者新建管理员用户并清空主题设置。排查发现插件目录存在木马、首页被注入创建管理员的恶意脚本,主题还引用了有投毒历史的cdn.staticfile.org。作者随后清理全部用户和数据库冗余,将第三方JS、CSS、字体改为本地部署,更换新服务器并重装Nginx,同时配置EdgeOne缓存规则,对后台、PHP及带Cookie请求禁用缓存。
延伸解读
重复被黑的根源:后门与第三方资源
文章显示,三次入侵均表现为新建管理员用户并清空主题设置,说明攻击者已获得持久化权限。排查在插件目录发现木马,首页被注入创建管理员的恶意脚本,且主题引用了有投毒历史的cdn.staticfile.org。这提示仅升级WordPress或禁用插件不足以清除后门,必须同时排查插件文件、数据库注入点和第三方前端资源,否则攻击者可通过残留后门反复进入。
清理与本地化:降低攻击面的关键步骤
作者清理了约2.9万个已无用的注册用户和数据库冗余信息,并将主题引用的JS、CSS、字体全部改为本地部署,不再引用第三方资源。这些操作减少了潜在入口和数据库负担,也避免了第三方CDN投毒风险。对于长期运行的WordPress站点,定期清理冗余数据、审查主题资源引用,是缩小攻击面的实用做法。
缓存规则的安全边界:后台与动态请求不缓存
文章给出的EdgeOne缓存规则对图片、CSS、JS等静态资源设置较长缓存,对首页、分类、标签等页面设置较短缓存,同时对wp-admin、wp-json、wp-login.php、xmlrpc.php、PHP/JSON文件以及带Cookie的请求禁用缓存。这能避免敏感后台和动态请求被缓存,降低信息泄露风险,但缓存配置本身不能替代后门清理和服务器加固。
加固后的提醒:备份与持续排查不可少
文章更新提到,刚升级加固后数据库又被黑入,最终还原到历史备份。这说明单次加固未必能彻底阻断攻击,备份是恢复底线。作者也坦言全站静态化只做了一半,后门来源尚未完全查清。读者应重视定期备份、持续监控异常管理员账户和文件变更,并在清理后验证后门是否真正移除。
Q&A
博客三个月内被黑了几次?每次被黑后攻击者做了什么?
博客三个月内被黑了三次。第一次在8月1日,攻击者新建了管理员用户并发布了两篇文章;第二波在10月国庆期间,同样新建管理员用户并清空了主题所有设置;第三波在10月12日,再次新建管理员用户并清空主题设置。
作者排查后发现博客被入侵的原因有哪些?
排查发现三个原因:1. 插件文件目录存在可疑木马文件;2. 博客首页被注入恶意脚本,该脚本会利用管理员登录状态创建管理员用户,且wp_options表中也被注入恶意脚本;3. 主题引用了有投毒黑历史的域名cdn.staticfile.org的前端加速资源。
cdn.staticfile.org这个域名有什么风险?
该域名有投毒黑历史,已经不属于七牛云,多次被爆有后门。如果网站使用了这个域名,应及时处理掉。
作者采取了哪些安全加固措施来解决博客被黑问题?
作者采取了五步措施:1. 清理全部注册用户(共29733个);2. 清理数据库中的冗余信息;3. 将主题引用的所有JS/CSS/字体文件改为本地服务器部署,不再引用第三方JS;4. 更换新服务器重新部署博客,安装最新版Nginx;5. 配置EdgeOne缓存规则,对后台、PHP及带Cookie请求禁用缓存。
EdgeOne缓存规则中,哪些请求被设置为不缓存?
以下请求被设置为不缓存:1. 路径匹配wp-admin、wp-json、wp-login.php、xmlrpc.php、wp-cron.php、wp-comments-post.php的请求;2. 文件扩展名为php或json的请求;3. 请求头中包含cookie的请求。
作者对博客全站静态化的计划是什么?
作者原本计划做全站静态化,但刚做了一半博客又再次被黑,因此暂时搁置,想先查清后门来源。后续仍会继续使用WordPress。