WordPress站点恶意JS注入漏洞分析
Sucuri的安全研究人员检测到攻击者利用Wordpress插件的漏洞进行攻击活动。该攻击活动中有超过2000个WordPress网站被黑,并重定向受害者到含有浏览器通知订阅、假的问卷调研和假的Adobe Flash下载活动的垃圾邮件站点。
JS注入
该漏洞被利用后,攻击者可以注入JS脚本到站点的主体,JS脚本可以从admarketlocation[.]com和 gotosecond2[.]com加载的脚本,如下图所示:
注入JS到被黑的wordpress站点
受害者访问被黑的站点时,注入的脚本就会在后台尝试访问/wp-admin/options-general.php 和 /wp-admin/theme-editor.php管理URL以进一步注入脚本或修改wordpress设置来重定向访问者。
注入脚本来入侵站点
这些URL需要管理员访问,所有只有当管理员访问站点时才可以成功。其他身份的用户访问时就会加载不同的垃圾邮件页面。
BleepingComputer研究人员在测试过程中发现会被重定向到一些垃圾站点,这些站点会告知用户需要订阅浏览器通知才能进行下一步。
浏览器通知订阅站点
用户点击Allow按钮订阅通知后,就会被重定向到其他垃圾站点,比如假的问卷调研、技术支持邮件和假的Adobe Flash Player更新。
条件检查和混淆技术
除了注入JS外,Sucuri研究人员还发现攻击者创建了伪造的插件目录来上传其他恶意软件到被黑的站点。
攻击者创建了一个名为ijmjg的变量,并使用函数String.fromCharCode()来以UTF-16格式隐藏恶意重定向URL,而不是常见的ASCII码字符。攻击者还使用/* */来添加注释,作为一种绕过技术来隐藏混淆,所以其他人无法轻易搜索文本字符串的文件。
函数checkone() 负责检查加载payload的访问者是否有“_logged_in” cookie,是否请求了/wp-admin URL中的payload。如果这些条件都满足,JS函数location.replace就会重定向访问者到ijmjg变量中保存的恶意重定向URL。研究人员预测该变量会在未来的恶意软件变种中发生变化。
研究人员还发现攻击者创建了一个伪造的插件目录,其中含有下一步的恶意软件,也滥用了/wp-admin/上传zip压缩文件的特征,即使用/wp-admin/includes/plugin-install.php文件来执行上传操作,并解压压缩的伪造插件到/wp-content/plugins/。
研究人员发现最常见的两个伪造插件目录是/wp-content/plugins/supersociall/supersociall.php和/wp-content/plugins/blockspluginn/blockspluginn.php。