查看代码:https://mp.weixin.qq.com/s/5aQbH64uDmf1jl9bJp8-xw
后台代码:(文件太多,就不放代码了)
攻击核心逻辑
攻击者通常不会去更改 WordPress 的核心代码,而是通过漏洞(如弱口令、插件漏洞)获取权限后,在支付网关或结账页面渲染逻辑中植入恶意脚本。
整个过程分为四个阶段:
-
潜伏(Infiltration):获取网站控制权。
-
劫持(Hooking):拦截正常的表单提交动作。
-
窃取(Data Exfiltration):将数据异步发送到攻击者的 C2(控制)服务器。
-
伪装(Masking):数据发送后,让用户继续完成正常支付,以防被察觉。
技术实现原理(含代码示例)
1. 恶意脚本植入
攻击者通常会修改主题的 functions.php 或在 wp-content/uploads 目录中隐藏一个 JS 文件,并利用 WordPress 的 wp_enqueue_script 钩子将其加载到结账页面 (is_checkout())。
2. 表单劫持代码 (JavaScript 层)
这是最常见的方法。脚本会监听“下单”按钮的点击事件,在数据传给合法支付网关(如 Stripe 或 PayPal)之前,先复制一份。
模拟恶意代码示例:
详细请看公众号文章:https://mp.weixin.qq.com/s/5aQbH64uDmf1jl9bJp8-xw
攻击路径图示
-
用户在被劫持的结账页面输入支付信息。
-
恶意脚本在后台静默运行。
-
双重发送:
-
路径 A(正常):数据发往合法的 Stripe/PayPal 接口(交易成功)。
-
路径 B(劫持):数据同步发往攻击者的数据库。
-
攻击者获取完整的 CVV、卡号及账单地址,随后在黑市出售或进行盗刷。
防御与检测
-
文件完整性监控 (FIM):定期检查
functions.php或插件目录是否有未经授权的更改。 -
内容安全策略 (CSP):通过配置 CSP 头部,禁止结账页面向未授权的第三方域名发送请求。
-
例如:
Content-Security-Policy: connect-src 'self' https://api.stripe.com;(这将阻止脚本向攻击者的域名发送fetch请求)。 -
定期扫描恶意代码:使用 Wordfence 或 Sucuri 扫描数据库和文件系统中的 Base64 加密字符串(攻击者常用于隐藏 URL)。
-
强制使用正规支付网关的托管字段:如 Stripe Elements。这种技术下,信用卡输入框实际上是托管在 Stripe 域名下的 iframe,攻击者的 JS 脚本因“同源策略”无法读取 iframe 内部的值。
总结
WordPress CVV 钓鱼成功的关键在于隐蔽性。对于站长而言,确保支付环境处于“托管模式”(即不经过服务器处理原始卡号)是防范此类攻击的最有效护城河。









