شرح ثغرة remote code execution RCE

0
شرح RCE أو

remote code execution
remote code execution

remote code execution و ما هي هذه الثغرة و كيف تتمكن من العثور عليها ، و كيف تقوم بإصلاحها اذا كنت مبرمج .

 

اليوم و في شرح جديد من شروحات دورة اختراق المواقع سوف نتعرف على احد اخطر انواع الثغرات على الاطلاق و المعروفة ب RCE 
في البداية تعالو نتعرف على معنى و اختصار هده الثعرة 
REC اختصار لكلمة remote code execution 
 
R : remote
C : code
E : execution
 
و اريد ان اوضح لكم انه لا يجب ان يتم تعريب مثل هده المصطلحات ابدااا 
لانه يجب ان تبقى ب اسمائها ب الاحرف  اللاتينية  
عموما انا سوف اتكلم عليها ب العربي معنى و ترجمة هده الثغرة هي  “تنفيذ التعليمات البرمجية عن بعد” 
و هدا النوع من الثغرات لا يصيب المواقع و حسب لا بل حتى انضمة التشغيل و تطبيقات الهواتف سواء android او ios 
و لا يمكن الكشف على مثل هده الثغرات الى ادا كنت تجيب لغة البرمجة المستعملة في التطبيق او الموقع الدي تقوم ب اختبار الاختراق عليه لان ثغرة RCE ليست مثل باقي الثغرات 
على سبيل المثال في ثغرة SQL يمكن لاي طفل استغلال هده الثغرة حتى ادا كان مبتدىء و لكن عكس ثغرة RCE لانها تحتاج الى مهارات في لغات برمجة معينة 
و نحن هنا نتكلم على اختراق المواقع بكل تاكيد 
لهادا ما يهمنا في لغات البرمجة هي اللغات الدينامكية  Dynamic programming language
و منها php و asp و عن قريب JavaScript  لان لغة الجافا سكربت سوف تعمل نفس عمل لغة php و هادا ما يقوله خبراء البرمجة “الجافا سكربت هي المستقبل “
 

كيف تحدث ثغرة RCE 

ثغرة RCE تحدث بسبب واحد الا و هو الخطء من المبرمج نفسه و احيانا تكون الثغرة ب سبب لغة البرمجة نفسها .
ثغرة RCE بسبب الخطء من المبرمج :
لغات البرمجة الدينامكية تتيح للمبرمجين عدة فانكشن function جاهزة دون الحاجة الى كتابتها و لكن هده ال  function  تمتلك صلحيات على النضام او الموقع بحيث تتمكن من التحكم او اعطاء اوامر على النضام مثال على هادا 
$dz = “varname”;
$o = $_GET[‘arg’];
eval(“$dz = $o;”);
?>
في الاعلى كود php بسيط بدون فلترة و هادا الخطء من المبرمج لانه يسمح للمستخدم ب استعمال اي شيء او اي كود على الموقع
نشوف الاستغلال كيف يكون
نقوم ب استعراض الرابط على المتصفح
127.0.0.1/index.php?arg=1; phpinfo()
 
و نلاحض انه قد قدم لنا phpinfo الخاصة ب السيرفر
127.0.0.1/index.php?arg=1; system(‘id’)
 
و الان نلاحض انه قد تم اعطائنا ال id الخاص بنا على السيرفر بكل بساطة و هادا امر خطير جدا

ثغرة RCE بسبب لغة البرمجة :


كما تكلمنا في الاعلى انه احيانا تنتج ثغرة rce بسبب خطءما في لغات البرمجة .
و انا هنا لا اتلكم على فراغ لان من كتب لغات البرمجة  نفسه الانسان و الانسان غير معصوم من الخطء و لكن ان تكتشف ثغرة ما في لغة برمجة فهادا يتطلب منك مهارات عااالية جدا
كمثال على هادا سوف نتكلم على ثغرة
 WordPress Core 4.6 – Unauthenticated Remote Code Execution (RCE) PoC Exploit
و هده الثغرة كانت ب سبب مشكل في دالة mail() في PHP  حيث تمكن الهاكر من حقن كود في الهيدر و الحصول على جلسة شل
و هادا الخطء من لغة البرمجة نفسها

الخلاصة : 

ثغرة  remote code execution ثغرة كبيرة جدا و تحتاج الى مهارات كبيرة في لغات البرمجة لهادا انت بحاجة الى وقت كبير لاحتراف هادا النوع من الثغرات  لهادا لا تياس ابدا و تابع 1 ب واحدة

 

Leave A Reply

Your email address will not be published.