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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-0778 — CVE-2022-0778 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, OpenSSL के BN_mod_sqrt() फ़ंक्शन में एक डिनायल-ऑफ-सर्विस कमजोरी, परीक्षण और विश्लेषण के लिए Docker-आधारित प्रयोगशाला वातावरण के साथ। | Kitploit
उपकरण/GitHubGitHub/jeongjunsoo/cve-2022-0778
भेद्यता विश्लेषणशोषणक्रिप्टोग्राफीलर्निंग और शिक्षालैब और अभ्यास
GitHubjeongjunsoo/cve-2022-0778

CVE-2022-0778

CVE-2022-0778 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, OpenSSL के BN_mod_sqrt() फ़ंक्शन में एक डिनायल-ऑफ-सर्विस कमजोरी, परीक्षण और विश्लेषण के लिए Docker-आधारित प्रयोगशाला वातावरण के साथ।

रिपॉजिटरी देखें
12 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

CVE-2022-0778

योगदानकर्ता

  • 정준수(@jeongjunsoo)

सारांश

  • CVE-2022-0778 कमजोरी OpenSSL में अभाज्य संख्याओं का वर्गमूल गणना करने वाले BN_mod_sqrt() फ़ंक्शन को प्रभावित करती है।

  • यह फ़ंक्शन जब अभाज्य-आधारित नहीं बल्कि दुर्भावनापूर्ण रूप से हेरफेर किए गए प्रमाणपत्रों को संभालता है, तो अनपैच किए गए सर्वर DoS हमले के संपर्क में आ सकते हैं।


लक्ष्य

  • OpenSSL 1.0.2
  • OpenSSL 1.1.1
  • OpenSSL 3.0

पैच से पहले

root@kitploit:~
i = 1;
if (!BN_mod_sqr(t, b, p, ctx))
    goto end;
while (!BN_is_one(t)) {
    i++;
    if (i == e) {
        ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
        goto end;
    }
    if (!BN_mod_mul(t, t, t, p, ctx))
        goto end;
}

  • इस एल्गोरिथम के अनुसार, जब i का मान e के मान तक पहुँचता है तो लूप समाप्त हो जाना चाहिए।
  • लेकिन विशेष इनपुट के माध्यम से i और e दोनों को 1 का मान देने पर, वह लूप समाप्त नहीं होता और अनंत लूप उत्पन्न होता है।
  • इसके परिणामस्वरूप सेवा अस्वीकार (DoS) होता है।

  • पैच के बाद

    root@kitploit:~
    for (i = 1; i < e; i++) {
        if (i == 1) {
            if (!BN_mod_sqr(t, b, p, ctx))
                goto end;
        } else {
            if (!BN_mod_mul(t, t, t, p, ctx))
                goto end;
        }
        if (BN_is_one(t))
            break;
    }
    /* If not found, a is not a square or p is not prime. */
    if (i >= e) {
        ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
        goto end;
    }
    
    
    • पुराने while लूप को for लूप में बदल दिया गया है।
    • इसके अनुसार, जब i का मान e तक पहुँचता है तो लूप स्वचालित रूप से समाप्त हो जाए, ऐसा पैच किया गया।
    • उपरोक्त पैच के माध्यम से अनंत लूप के जोखिम को समाप्त कर दिया गया।

    पर्यावरण सेटअप और निष्पादन

    • Ubuntu पर्यावरण सेटअप

    • docker compose up -d परीक्षण वातावरण चलाएँ

    • docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345

    • docker compose exec curl top प्रक्रिया स्थिति जांचें

    • docker compose exec curl bash bash चलाएँ

    • curl -k https://172.17.0.1:12345 12345 पोर्ट पर HTTPS अनुरोध भेजें


    निष्पादन

    • अभ्यास के लिए तीन टर्मिनल विंडो (A, B, C) तैयार करें।

    • टर्मिनल A में, docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345 कमांड चलाकर Docker इमेज शुरू करें।

    • अगला, टर्मिनल B में docker compose exec curl top कमांड चलाकर वर्तमान में चल रही प्रक्रियाओं की स्थिति देखें।

    • अंत में, टर्मिनल C में docker compose exec curl bash दर्ज करने के बाद, curl -k https://172.17.0.1:12345 12345 पोर्ट पर HTTPS अनुरोध भेजें।

    परिणाम

    • टर्मिनल B में चलाए गए top कमांड के परिणामस्वरूप, curl प्रक्रिया CPU संसाधनों का लगभग 100% उपयोग कर रही है। यह अनंत लूप में फंसने के कारण हुआ।

    सारांश

    • यह कमजोरी अभाज्य संख्या की पुष्टि के अभाव के कारण उत्पन्न हुई।
    • अनंत लूप समस्या को रोकने के लिए while लूप को for लूप में बदलकर पैच किया गया।

    संदर्भ

    • https://github.com/drago-96/CVE-2022-0778

    • https://hackyboiz.github.io/2022/03/19/syru/cve-2022-0778/

    • https://github.com/yywing/cve-2022-0778/


    टूल डाउनलोड करें