राउंडक्यूब डे जीरो वल्नरेबिलिटी

कई अलग-अलग उपयोगी सॉफ़्टवेयर हैं जो अधिकांश होस्टिंग साइटों पर मौजूद हैं। उदाहरण के लिए, phpmyadmin डी-फैक्टो मानक है, जिसकी अनुपस्थिति उपयोगकर्ताओं को समझ नहीं आएगी और सराहना नहीं करेगी।

मेल के लिए, यह "डिफ़ॉल्ट एप्लिकेशन" राउंडक्यूब है।

आज हम एक शून्य-दिन की भेद्यता के बारे में बात करेंगे जो हमलावरों को आपके उपयोगकर्ताओं के सभी मेल देती है


यह परंपरागत रूप से माना जाता है कि ऐसी लोकप्रिय लिपियों में कोई महत्वपूर्ण कमजोरियां नहीं हो सकती हैं। हां, शायद XSS, शायद CSRF, यह अप्रिय है, लेकिन इसे संचालित करना मुश्किल है और ज्यादातर मामलों में गंभीर डेटा रिसाव नहीं होता है।

हमने पूरी समझ के साथ साझा-होस्टिंग तैयार की है कि हमारे ग्राहक किसी भी सुरक्षा उल्लंघनों के प्रति बेहद संवेदनशील हैं। कोई स्पष्ट या संभावित खतरा नहीं होना चाहिए। हालांकि, अब कुछ समय के लिए हमने एफ़टीपी के अनधिकृत उपयोग के बारे में शिकायतों में सांख्यिकीय रूप से महत्वपूर्ण वृद्धि देखी है।

सब कुछ चेक किया गया था - आंतरिक सुरक्षा से लेकर बिलिंग के माध्यम से किसी भी लीकेज विकल्प तक, उपयोगकर्ताओं से स्वयं आदि।

कुछ बिंदु पर, यह स्पष्ट हो गया कि रिसाव मेल सिस्टम से आया है और सबसे अधिक संभावना है इसके वेब भाग से।

ऑपरेशन पैटर्न बेहद अजीब है - क्रैकर राउंडक्यूब डेटाबेस से पासवर्ड प्राप्त करता है, phpmyadmin के माध्यम से सत्रों को वहां से खींचता है, सत्रों से मेल के लिए पासवर्ड प्राप्त करता है। इसके अलावा, राउंडक्यूब सत्र को एन्क्रिप्ट करता है, जिसका अर्थ है कि एन्क्रिप्शन कुंजी तक पहुंच है।

POST के आंशिक लॉगिंग ने भेद्यता को खोजने में मदद की:

POST /?_task=settings&_action=save-pref&check_request=&_check_request= HTTP/1.1" 200 1133 "http://mail.ddos-guard.net/?_task=mail" "Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0" "_token=0f7c9ae8a387cb0bc5ce563fa09fe172&_session=generic_message_footer&_name=generic_message_footer&_value=config/db.inc.php


स्थानीय शामिल हैं। पटाखा ईमेल पाद करने के लिए config / db.inc.php जोड़ता है और खुद को ईमेल भेजता है।
यह पता लगाने के लिए बना हुआ है कि यह कैसे पता चलता है कि राउंड क्यूब का नवीनतम स्थिर संस्करण इस तरह का घृणा करता है।

सब कुछ काफी सरल है:

index.php:
 else if ($RCMAIL->action == 'save-pref') { include INSTALL_PATH . 'program/steps/utils/save_pref.inc'; } 


कार्यक्रम / कदम / बर्तन / save_pref.inc:
 $name = get_input_value('_name', RCUBE_INPUT_POST); $value = get_input_value('_value', RCUBE_INPUT_POST); // save preference value $RCMAIL->user->save_prefs(array($name => $value)); // update also session if requested if ($sessname = get_input_value('_session', RCUBE_INPUT_POST)) { // Support multidimensional arrays... $vars = explode('/', $sessname); // ... up to 3 levels if (count($vars) == 1) $_SESSION[$vars[0]] = $value; else if (count($vars) == 2) $_SESSION[$vars[0]][$vars[1]] = $value; else if (count($vars) == 3) $_SESSION[$vars[0]][$vars[1]][$vars[2]] = $value; } $OUTPUT->reset(); $OUTPUT->send(); 


हमलावर कॉन्फ़िगरेशन में किसी भी चर को अधिलेखित कर सकता है और किसी भी फ़ाइल को प्राप्त कर सकता है जो उपयोगकर्ता के लिए पठनीय है जिसके तहत राउंड क्यूब काम करता है।

भेद्यता नवीनतम संस्करणों में मौजूद है - राउंडक्यूब 0.8.5 और 0.9-आरसी।

एक छेद के अस्थायी प्लगिंग के लिए पैच:

 diff --git a/index.php b/index.php index 8de8ca0..6470295 100644 --- a/index.php +++ b/index.php @@ -258,7 +258,8 @@ if ($RCMAIL->action == 'keep-alive') { $OUTPUT->send(); } else if ($RCMAIL->action == 'save-pref') { - include INSTALL_PATH . 'program/steps/utils/save_pref.inc'; + echo "Oops"; + die; } 


यह ध्यान देने योग्य है कि गोलकुंड CPanel, DirectAdmin, आदि में मौजूद है। वास्तव में, अधिकांश आधुनिक होस्टिंग कंपनियां इस जोखिम से प्रभावित हैं।

मैं आपको खुशी की कामना करता हूं। सतर्क रहें।

अपडेट 03/28/2013
डेवलपर्स से पैच
अन्य संस्करणों के लिए पैच - http://sourceforge.net/news/?group_id=139281&id=1010807
संस्करण 0.8.6, भेद्यता को ठीक करना - http://roundcube.net/download

Source: https://habr.com/ru/post/In174423/


All Articles