做外链这行七年了,头发掉了一把,坑也踩了一堆。最近有个老哥们找我救火,说他的站突然被挂马,后台进不去,一看全是乱码。我连上去一查,好家伙,典型的织梦CMS漏洞导致的。很多人以为换个主题、发发文章就完事了,其实底层的安全才是命门。今天不整那些虚头巴脑的理论,就聊聊那个让无数站长头疼的 dede 友情链接shell 问题,怎么来的,怎么修,全是干货。
先说个真事。上个月有个做SEO的朋友,为了堆外链,在友链交换平台上随便加了几个站。没过两天,他的后台登录页面就变了,提示“系统错误”。他慌了,找外包修,花了三千块,结果没过一周又中招了。后来我帮他排查,发现是织梦默认的 dede 友情链接模块存在SQL注入漏洞,攻击者利用这个点上传了一个小马,也就是所谓的 shell。这玩意儿就像是在你家大门上装了个隐形钥匙,黑客想进就进,想改啥改啥。
很多人问,dede 友情链接shell 是怎么产生的?其实很简单。织梦早期的版本,在处理友情链接列表时,没有对输入参数做严格的过滤。黑客构造一个特殊的URL,里面包含恶意代码,提交后,服务器执行了这段代码,从而在uploads目录下生成了一个webshell文件。这个文件通常伪装成图片或者普通的php文件,肉眼很难发现。一旦生成,黑客就能通过它执行任意命令,比如篡改首页、挂黑链、甚至控制整个服务器。
怎么解决?别听那些卖课的瞎忽悠,什么重装系统、买高级防火墙,对于中小站长来说,成本太高且没必要。最直接有效的办法,就是修补漏洞。如果你还在用老版本的织梦,强烈建议升级到最新版,或者手动修复。修复的核心思路是:找到 include/diyitem.class.php 或者相关的友情链接处理文件,检查其中的 SQL 查询语句,确保使用了 addslashes 或者 PDO 预处理来转义特殊字符。另外,删除不需要的模块也是个好办法,比如你不做友情链接展示,直接把 dede 目录下的 link 相关文件夹删掉,或者在后台禁用该模块。
我有个客户,站是2018年的老站,数据量不大,但权重挺高。他之前也遇到过类似情况,那次就是没及时修,导致被降权。后来我帮他做了两件事:第一,把 dede 后台目录改成了复杂的随机字符串,比如 admin_8x9k2m;第二,给友情链接模块加了权限验证,只有管理员才能访问。做完这些,他的站再也没出现过异常。对比那些盲目追求外链数量的同行,这种“防守型”SEO策略虽然看起来慢,但胜在稳定。
还有一点要注意,很多站长喜欢用一些免费的织梦模板,这些模板往往自带后门。我在检查一个站的时候,发现模板里竟然嵌了一段 base64 编码的代码,解码后就是典型的 dede 友情链接shell 注入脚本。所以,以后下载模板,一定要先扫描,别嫌麻烦。安全无小事,一旦中招,恢复数据的时间成本远高于预防成本。
总结一下,面对 dede 友情链接shell 这类漏洞,不要恐慌,但要重视。定期备份数据库,升级系统补丁,修改后台路径,检查模板代码,这四步走稳了,基本能避开90%的风险。别等站被K了才想起来找原因,那时候黄花菜都凉了。做SEO是一场马拉松,不是百米冲刺,稳扎稳打才能笑到最后。
本文关键词:dede 友情链接shell