Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/leesh3288/cve-2025-32023
मेमोरी फोरेंसिकभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगCTFपेलोड डेवलपमेंटबाइनरी शोषण
GitHubleesh3288/cve-2025-32023

CVE-2025-32023

CVE-2025-32023 / PlaidCTF 2025 "Zerodeo" के लिए PoC और एक्सप्लॉइट

रिपॉजिटरी देखें
2164011 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2025-32023

CVE-2025-32023 के लिए PoC और एक्सप्लॉइट (GHSA-rp2m-q4j6-gr43) / PlaidCTF 2025 "Zerodeo"

पुनरुत्पादन / पैच

redis:7.4.2-alpine3.21@sha256:02419de7eddf55aa5bcf49efb74e88fa8d931b4d77c07eff8a6b2144472b6952 के विरुद्ध परीक्षण किया गया

Redis संस्करण >= 2.8 को प्रभावित करता है। 8.0.3, 7.4.5, 7.2.10, 6.2.19 पर पैच किया गया, देखें redis/redis@5018874।

बग

Redis में HyperLogLog अपने स्वयं के कस्टम एन्कोडिंग के साथ एक और स्ट्रिंग है। एक स्पार्स HLL एन्कोडिंग पर पुनरावृत्ति करने के लिए प्रत्येक स्पार्स प्रतिनिधित्व की रन लंबाई जोड़ने की आवश्यकता होती है, जो एक दुर्भावनापूर्ण HLL पर संचालित होने पर int i में गिनी गई कुल लंबाई को ओवरफ्लो कर एक नकारात्मक मान में बदल सकता है। यह हमलावर को HLL संरचना पर नकारात्मक ऑफसेट पर ओवरराइट करने की अनुमति देता है, जिससे स्टैक/हीप पर आउट-ऑफ-बाउंड्स राइट होता है, यह इस पर निर्भर करता है कि HLL संरचना कहाँ से आई है (जैसे hllMerge() स्टैक-आवंटित एक लेता है, hllSparseToDense() हीप-आवंटित एक लेता है)।

नीचे पैच स्निपेट देखें:

root@kitploit:~
 int hllMerge(uint8_t *max, robj *hll) {
     struct hllhdr *hdr = hll->ptr;
     int i;

     if (hdr->encoding == HLL_DENSE) {
         hllMergeDense(max, hdr->registers);
      } else {
         uint8_t *p = hll->ptr, *end = p + sdslen(hll->ptr);
         long runlen, regval;
+        int valid = 1;
 
         p += HLL_HDR_SIZE;
         i = 0;
         while(p < end) {
             if (HLL_SPARSE_IS_ZERO(p)) {
                 runlen = HLL_SPARSE_ZERO_LEN(p);
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 i += runlen;
                 p++;
             } else if (HLL_SPARSE_IS_XZERO(p)) {
                 runlen = HLL_SPARSE_XZERO_LEN(p);
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 i += runlen;
                 p += 2;
             } else {
                 runlen = HLL_SPARSE_VAL_LEN(p);
                 regval = HLL_SPARSE_VAL_VALUE(p);
-                if ((runlen + i) > HLL_REGISTERS) break; /* Overflow. */
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 while(runlen--) {
                     if (regval > max[i]) max[i] = regval;
                     i++;
                }
                 p++;
             }
         }
-        if (i != HLL_REGISTERS) return C_ERR;
+        if (!valid || i != HLL_REGISTERS) return C_ERR;
     }
     return C_OK;
 }

एक्सप्लॉइट

एक्सप्लॉइट मानक Redis pwnables है:

  1. jemalloc हीप पर एक sds ऑब्जेक्ट को दूषित करें ताकि इसकी लंबाई बड़ी हो जाए।
  2. embstr ऑब्जेक्ट्स को स्प्रे करें ताकि एक नकली मॉड्यूल ऑब्जेक्ट में दूषित हो जाए।
  3. दूषित sds ऑब्जेक्ट का उपयोग करके हीप को डंप करें ताकि लक्ष्य embstr ऑब्जेक्ट खोजा जा सके और पतों को लीक किया जा सके।
  4. लक्ष्य embstr ऑब्जेक्ट पर एक नकली मॉड्यूल ऑब्जेक्ट बनाएं।
  5. नकली मॉड्यूल ऑब्जेक्ट को हटाएं, जिससे डिस्ट्रक्टर ट्रिगर हो और RCE प्राप्त हो।
टूल डाउनलोड करें