关于WordPress主题供应商Pipdig使用客户的网站对不同竞争对手发起DDoS攻击的事件总结
字数 2264 2025-08-18 11:38:23

WordPress主题供应商Pipdig恶意代码事件分析报告

事件概述

2019年,WordPress主题供应商Pipdig被安全研究人员发现利用客户的服务器对竞争对手网站发动DDoS攻击,并通过其主题插件实施多项恶意行为。本报告详细分析该事件的技术细节、恶意代码实现方式及应对措施。

恶意行为分析

1. 对竞争对手执行DDoS攻击

代码位置: /p3/inc/cron.php

实现方式:

  • 通过WP Cron每小时运行一次的函数执行恶意代码
  • 代码伪装成"检查CDN缓存"的功能
  • pipdigz.co.uk上的特定文件(id39dqm3c0_license_h.txt)发送GET请求
  • 获取响应中的目标URL(如https://kotrynabassdesign.com/wp-admin/admin-ajax.php)
  • 使用伪造的用户代理向目标URL发送第二个GET请求

技术细节:

  • 用户代理字符串: 'Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/60.0.3112.113 Safari/537.36'
  • 附加随机生成的编号字符串
  • 排除了Pipdig自己托管的客户服务器

2. 操纵博客内容链接

代码位置: /p3/inc/functions.php (307行以后)

实现方式:

  • 搜索内容中提及"blogerize.com"的链接
  • 将竞争对手链接替换为Pipdig自己的博客迁移服务链接(pipdig.co/shop/blogger-to-wordpress-migration/)
  • 影响SEO并误导用户

3. 收集数据和更改管理员密码

代码位置: /p3/inc/cron.php

实现方式:

  • 伪装成"检查新社交渠道"的功能
  • https://pipdigz.co.uk/p3/socialz.txt发送GET请求
  • 收到响应中的电子邮件地址后:
    • 检查用户表中是否存在该邮箱
    • 将用户密码更改为'p3_safe_styles'
    • 记录站点URL到https://pipdigz.co.uk/p3/socialz.php

风险:

  • 可随时激活的后门
  • 明文密码存储
  • 可能被恶意利用

4. 数据库清除功能(Kill Switch)

代码位置: /p3/inc/cron.php

实现方式:

  • https://pipdigz.co.uk/p3/id39dqm3c0.txt发送GET请求
  • 如果返回的URL与博客URL匹配:
    • 查找所有WordPress前缀的表
    • 逐个删除数据库表
  • 导致所有内容、设置和数据永久丢失

5. 禁用其他插件

代码位置: /p3/p3.php

实现方式:

  • 插件激活时停用一系列指定插件
  • admin_init时再次检查并停用
  • 影响网站功能和安全性

6. 隐藏管理通知

实现方式:

  • 隐藏WordPress核心和其他插件的重要管理通知
  • 可能掩盖安全问题或其他重要信息

扩展攻击方式

通过Blogger主题的JS攻击

实现方式:

  • 主题中包含对hXXps://pipdigz[.]co[.]uk/js/zeplin1.js的调用
  • 该JS文件包含混淆代码,实际功能:
    • 设置目标地址: hXXps://nullrefer[.]com/?hXXps://www.{competitor's domain}[.]com/{random endpoint}
    • 使用NullRefer服务隐藏请求来源
    • 向竞争对手站点发送随机请求

证据隐藏行为:

  • 4月1日删除脚本第二行
  • 通过Web Archive可查证历史记录
  • 后续使用jquery.menu.min.js继续类似攻击

事件时间线

  1. 初始发现: 用户报告网站变慢,安全研究人员分析代码
  2. 证据收集: 发现多项恶意行为代码
  3. Pipdig回应: 否认攻击行为,声称是许可检查
  4. 证据删除: Pipdig从Bitbucket删除代码
  5. 社区反击: Wordfence等提供更多证据
  6. 持续攻击: 即使被曝光后仍继续修改JS进行攻击

受影响用户应对措施

  1. 立即行动:

    • 备份WordPress文件和数据库
    • 激活备用主题
    • 停用并删除p3 power pack插件及其补充插件
  2. 安全检查:

    • 检查并删除未知用户
    • 重置所有管理员密码
    • 使用WP Crontrol等插件删除所有名为p3_的cron作业
  3. 后续防护:

    • 再次完整备份
    • 考虑更换主题提供商
    • 监控网站异常行为

技术取证要点

  1. 代码分析:

    • 检查所有外部请求
    • 验证cron任务的实际功能
    • 审查插件修改内容的行为
  2. 日志分析:

    • 检查服务器访问日志中的异常请求
    • 特别关注admin-ajax.php的调用
    • 查找特定用户代理字符串
  3. 历史证据:

    • 利用Web Archive获取被删除的内容
    • 检查代码版本差异
    • 保留所有证据副本

安全建议

  1. 对于用户:

    • 谨慎选择主题和插件提供商
    • 定期审查安装的插件代码
    • 设置文件修改监控
  2. 对于开发者:

    • 透明化代码功能
    • 避免隐藏行为
    • 尊重用户隐私和选择权
  3. 对于主机商:

    • 监控异常外发请求
    • 提供自动备份服务
    • 快速响应安全事件

参考资源

  1. 原始分析报告
  2. Wordfence技术分析
  3. Pipdig官方回应
  4. 恶意代码样本

通过本事件,网站管理员应提高对第三方代码的警惕性,建立完善的安全监控机制,并定期审查网站组件的行为。

WordPress主题供应商Pipdig恶意代码事件分析报告 事件概述 2019年,WordPress主题供应商Pipdig被安全研究人员发现利用客户的服务器对竞争对手网站发动DDoS攻击,并通过其主题插件实施多项恶意行为。本报告详细分析该事件的技术细节、恶意代码实现方式及应对措施。 恶意行为分析 1. 对竞争对手执行DDoS攻击 代码位置 : /p3/inc/cron.php 实现方式 : 通过WP Cron每小时运行一次的函数执行恶意代码 代码伪装成"检查CDN缓存"的功能 向 pipdigz.co.uk 上的特定文件( id39dqm3c0_license_h.txt )发送GET请求 获取响应中的目标URL(如 https://kotrynabassdesign.com/wp-admin/admin-ajax.php ) 使用伪造的用户代理向目标URL发送第二个GET请求 技术细节 : 用户代理字符串: 'Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/60.0.3112.113 Safari/537.36' 附加随机生成的编号字符串 排除了Pipdig自己托管的客户服务器 2. 操纵博客内容链接 代码位置 : /p3/inc/functions.php (307行以后) 实现方式 : 搜索内容中提及"blogerize.com"的链接 将竞争对手链接替换为Pipdig自己的博客迁移服务链接( pipdig.co/shop/blogger-to-wordpress-migration/ ) 影响SEO并误导用户 3. 收集数据和更改管理员密码 代码位置 : /p3/inc/cron.php 实现方式 : 伪装成"检查新社交渠道"的功能 向 https://pipdigz.co.uk/p3/socialz.txt 发送GET请求 收到响应中的电子邮件地址后: 检查用户表中是否存在该邮箱 将用户密码更改为 'p3_safe_styles' 记录站点URL到 https://pipdigz.co.uk/p3/socialz.php 风险 : 可随时激活的后门 明文密码存储 可能被恶意利用 4. 数据库清除功能(Kill Switch) 代码位置 : /p3/inc/cron.php 实现方式 : 向 https://pipdigz.co.uk/p3/id39dqm3c0.txt 发送GET请求 如果返回的URL与博客URL匹配: 查找所有WordPress前缀的表 逐个删除数据库表 导致所有内容、设置和数据永久丢失 5. 禁用其他插件 代码位置 : /p3/p3.php 实现方式 : 插件激活时停用一系列指定插件 在 admin_init 时再次检查并停用 影响网站功能和安全性 6. 隐藏管理通知 实现方式 : 隐藏WordPress核心和其他插件的重要管理通知 可能掩盖安全问题或其他重要信息 扩展攻击方式 通过Blogger主题的JS攻击 实现方式 : 主题中包含对 hXXps://pipdigz[.]co[.]uk/js/zeplin1.js 的调用 该JS文件包含混淆代码,实际功能: 设置目标地址: hXXps://nullrefer[.]com/?hXXps://www.{competitor's domain}[.]com/{random endpoint} 使用NullRefer服务隐藏请求来源 向竞争对手站点发送随机请求 证据隐藏行为 : 4月1日删除脚本第二行 通过Web Archive可查证历史记录 后续使用 jquery.menu.min.js 继续类似攻击 事件时间线 初始发现 : 用户报告网站变慢,安全研究人员分析代码 证据收集 : 发现多项恶意行为代码 Pipdig回应 : 否认攻击行为,声称是许可检查 证据删除 : Pipdig从Bitbucket删除代码 社区反击 : Wordfence等提供更多证据 持续攻击 : 即使被曝光后仍继续修改JS进行攻击 受影响用户应对措施 立即行动 : 备份WordPress文件和数据库 激活备用主题 停用并删除p3 power pack插件及其补充插件 安全检查 : 检查并删除未知用户 重置所有管理员密码 使用WP Crontrol等插件删除所有名为 p3_ 的cron作业 后续防护 : 再次完整备份 考虑更换主题提供商 监控网站异常行为 技术取证要点 代码分析 : 检查所有外部请求 验证cron任务的实际功能 审查插件修改内容的行为 日志分析 : 检查服务器访问日志中的异常请求 特别关注 admin-ajax.php 的调用 查找特定用户代理字符串 历史证据 : 利用Web Archive获取被删除的内容 检查代码版本差异 保留所有证据副本 安全建议 对于用户 : 谨慎选择主题和插件提供商 定期审查安装的插件代码 设置文件修改监控 对于开发者 : 透明化代码功能 避免隐藏行为 尊重用户隐私和选择权 对于主机商 : 监控异常外发请求 提供自动备份服务 快速响应安全事件 参考资源 原始分析报告 Wordfence技术分析 Pipdig官方回应 恶意代码样本 通过本事件,网站管理员应提高对第三方代码的警惕性,建立完善的安全监控机制,并定期审查网站组件的行为。