SudoAhmed | مبرمج ⚡️
SudoAhmed | مبرمج ⚡️

@ahmedrowaihi

12 تغريدة 53 قراءة Dec 12, 2021
تحذير شديد اللهجة📛
Invisible JavaScript Backdoor
ثغرة
⛔️ حذاري من نسخ ولصق اي كود من اي مكان فالعالم.. دون تفحصه بعناية
تحذير استغلال خطير حتى كبار code review و الcypersecurities قد يخدع بها
هل سمعت بيوم عن الـ Zero Width Character ?
⚡️ Thread ⚡️
تخيل معايا انك قمت بنسخ مجموعة من الاكواد بهذا الشكل
كود طبيعي المظهر يساعدك تسوي ريكوست للسيرفر بحيث تتفقد على حالة اتصال الانترنت عن طريق تنفيذ الـhardcoded commands الموجودة في المصفوفة.
همم طيب؟؟ اش قاعد تهبد علينا ي احمد؟
صل على الحبيب وتعال شوف معايا
.⚡️👇🏼
لو اقولك ان المصيبة تكمن في ان هذا الكود يوجد به
متغير ( Parameter ) ماتقدر تشوفه :)؟ وانه مستدعى وراح يتم تنفيذ هذا shell command لانه موجود ضمن في المصفوفة بس انت ما تقدر تشوفه! حتقولي مجنون
الواقع المر هذا الكلام صحيح، خليني احط حول هذا الكود المخفي مربعات وتعرف مكانه.
⚡️👇🏼
بمعنى ان الشخص اللي كتبلك هذا الكود، قام بفتح باب استغلال او ما يسمى ( backdoor ) يمكنه من تنفيذ commands عن طريق هذا المتغير المخفي المكون من ZERO WIDTH Character
ايش هذي الـ Zero Width Character ؟ وليش ما نقدر نشوفها رغم انها تستطيع ان تحمل قيم! وتكتب كمتغيرات!
تابع معاي⚡️👇🏼
ZERO WIDTH Character
كلنا نعرف انه لا يمكن انشاء متغير يبدأ ب SPACE مثال في الصورة
لكن باستخدام اي zero width character
فهو امر يمكن حدوثه! كما هو الحال في هذي الصورة اللي راح تخلي مخك يوقف شوية من الصدمة😂⚡️:
تم انشاء متغيرات باسماء يتضح انها فارغه! وتم تنفيذ الoperation بنجاح!
كيفففف!!
⚡️👇🏼 ⚡️👇🏼
هناك نوع من النصوص يسمى بـ hangul filler وهو مجرد Unicode character يعمل بطريقة تشابه اسلوب اللعبة الشهيرة.
Hangul Filler “ㅤ” (U+3164)
Halfwidth Hangul Filler “ᅠ” (U+FFA0)
فهو يظهر وكأنه مجرد space ولكنه في الحقيقة نص صحيح يمكن استخدامه لتسمية متغيرات جافاسكريبت.
امثلة:
⚡️👇🏼
شوفو مثلا هنا قمت بانشاء متغيرات باسماء فارغه ولا يمكن رؤيتها ولكنها تحمل قيم :)
طيبببب نرجع لأول صورة!! هل فكرت كيف يمكن استغلالك وخداعك بهذا الاسلوب!
⚡️👇🏼
قلنا انه يقدر يحط نصوص مخفية في الكود فالبتالي يقدر ينفذها فالبتالي يقدر يقدر يستغلها :)
مثلا POSTMAN لو قام الشخص بطلب GET http على "/network_health"
وارفق Query Hangul Filler بقيمة تشمل shell command راح يتم تنفيذه على الـ OS وتحدث الكوارث ولك ان تتخيل كل امر يمكن تنفيذه!
⚡️
طريقة الحماية 🛡️⚡️
- الرجاء تحديث الـ IDE الخاصة بك دائما
- وتفعيل خاصية اظهار رموز Unicode المخفية كما وضحت في الصور وسأقوم بشرح الخطوات
⚡️⚡️ شكل الكود قبل تفعيل اظهار الرموز
قم بالذهاب الى نافذة اعدادات الـ IDE الخاص بك، في حالتي انا استخدم VSCODE وانصح به بشدة
code.visualstudio.com
في شريط البحث اكتب Unicode
ثم فعل Unicode Highlight Invisible Characters
في الصورة الثانية سترى الفرق فقد قام الـ IDE بتحديد مربعات صفراء حول رموز Unicode المخفية.
في الختام اتمنى وصلت الفكرة للجميع واخذ الحيطة والحذر دائما في نسخ او تفحص الاكواد من المبرمجين الغير معتمدين كي لا تكون الضحية💛⚡️🙌
اتمنى تشاركو هذي التغريدة لكي تعم الفائدة ويارب اني شرحتها بشكل مفهوم.
دعواتكم لي في فترة الاختبارات احتاجها💛⚡️⚡️

جاري تحميل الاقتراحات...