又中招了,GTranslate 服务说网站请求量过大,停止了服务。查看首页,发现一个首页,加载了 1000 多个 css 文件。
发现是 Joomla SP Page Builder 的漏洞,会通过 POST 上传一堆文件。
SP Page Builder在2026年被曝出多个严重安全漏洞(如CVE-2026-48908、CVE-2026-66494等),允许未授权用户上传恶意文件甚至执行代码
然后影响首页加载很多 css 文件。好在,之前添加了 nginx 规则,会阻止 media 路径下的所有代码执行。所以,只会看到加载了一千多个 css 文件,但是没有其他影响。
晚上,清理了这些配置,并且增加了 cloudflare 规则,阻止了 SP Page Builder 相关的 post 请求。
Nginx 日志
POST /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon 200
GET /media/com_sppagebuilder/assets/iconfont/icorlycgq/fonts/fawvfmj.PHP?t=ixbszjbawvencrtq&c=echo+SPPB-RCE-%24%28%287%2A6%29%29 HTTP/1.1 403
攻击 IP 来自新加坡的 194.233.86.244。上传完成后,就开始尝试执行恶意 PHP 代码,好在我阻止了 media 下的 PHP 代码执行。
cloudflare 拦截规则
当请求是 POST 时,并且
http.request.uri.query contains "option=com_sppagebuilder"
就直接拦截。不用 Nginx 拦截的原因是,我不知道怎么设置 nginx 判断这种多条件的情况。而且用 cloudflare 也更节省服务器资源。
测试
确认是否禁止了 com_sppagebuilder 相关的 POST 请求。
curl -X POST "http://your-domain.com/index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon" -I
如果返回 HTTP/2 403,说明拦截成功了。
清理首页加载项
即便清空了服务器
需要到数据库的 xxx_sppagebuilder_assets 数据表,清理掉里面的恶意文件配置。
关于作者 🌱
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式