التصنيفات
مقالات الضيوف

تعريف مصطلح الـ Hacking

اللي عمره ما كان حكراً على مجال الاختراق او اى مجال


مصطلح هاكينج – Hacking عمره ما كان حكراً على مجال السكيوريتى او اى مجال، هاكينج معناها انك بتغير طبيعة شئ ما، بتغير فى ال process الطبيعية بتاعته، بتخليه يعمل حاجه هوا مكانش المفروض انه يعملها، علشان كدا ظهرت مصطلحات تانية منبثقة من تحته حاجات زى life hacks واللى هيا انك بتخلى ادوات صنعت لغرض معين من انها تؤدى غرض تانى وتساعدك فى انها تبقى شئ بديل لشئ تانى مش متوفر ليك استخدامه، ودى العقلية اللى بيتمتع بيها “الهاكر”، انه لو محتاج شئ والشئ دا مش موجود ممكن ياخد حاجتين كدا يغير فى طبيعتهم وهوب حصل على الهدف المنشود من تغييره ليهم، فمش ضرورى زى ما قولت الموضوع يكون من ناحية “الامان” فقط، كفايانا بقى مقدمات طويلة وخلينى اقولكم على مره (جايز تكون شيقة) من المرات الكتير اللى طبقت فيها ال hacks اللى دماغك كـ مبرمج او شخص بيشتغل فى مجال معين ممكن يعملها، مبدأياً الفكرة والبوست جايز ميكونوش اكتر شئ مبهر بتقراه النهارده او على مر السنين انما انا متأكد انه هيكون ممتع، واه بيتطلب خلفيه تقنية حبتين علشان تفهمه.

انا هنا دايما بستخدم خدمات اليكترونية كتير فى التنقل، يعنى بستخدم اوبر علشان اروح المشاوير الطويله، بستخدم خدمة الدراجات والاسكوترز القابلة للتأجير الموجوده فى الشوارع، كل الخدمات دى بتتشابه وبتجمعهم نقطة واحده وهى “التكنولوجيا”، وطالما الخدمات دى خدمات online فأكيد ليها تطبيقات، وطالما ليها تطبيقات فهيا بتستخدم الانترنت وطالما بتستخدم الانترنت فهيا فيها مخدمات servers وبتعمل طلبات requests وبتستلم ردود responses وطالما بتعمل دا فهيا ليها Application Programming Interfaces او APIs (عارفك لو شخص ليك خلفية تقنية بالفعل وبتقرا دا بدأت تمل وتشتم، معلش استحمل لان فى ناس غيرك متفهمش دا فوجب التوضيح)، المهم، فى يوم ما من الايام فى شهر من الشهور كان ضغطى على الموبايل انترنت Data Plan كبير جدا لدرجة ان كمية الانترنت المخصصة للخطة بتاعتى انتهت فى يوم ١٣ + انى كنت عايز اعمل تعديلات فى بيانات الخط فمينفعش لا اشحن ولا اغير الخطة لحد اخر الشهر فحتى احتمالية انى اجدد الخطة كان احتمال مستبعد، معنى ان تننهى منى ال Data Plan يوم ١٣ ونزلت للاستخدام المجانى ودا بيخليك تستخدم خدمات معينه فقط منها فيسبوك، واتساب، تويتر وبس فدى فى حد ذاتها كارثة، ممكن معرفش اتحرك ابدا بسبب حاجه زى دى ولا اعرف اروح مكان، الخ…، رحنا ميتينج انا وصديق ليا وفى نص الميتينج صديقى استأذن ومشى انا كملت عادى جدا ولما خلص الميتينج ومشيت من مكتب الشركة اللى كان فيها الاجتماع ونزلت الشارع فمسكت الموبايل كالعاده هطلب اى وسيلة مواصلات وهوب اتصدمت لما افتكرت ان مفيش انترنت وكل تطبيقات المواصلات مينفعش تشتغل بالانترنت المجانى، طيب اعمل ايه؟ كلمت صديق ليا بالتليفون وقولتله انى هبعتله العنوان بتاعى بالظبط على واتس اب ويطلبى اوبر علشان اعرف ارجع، الموقف اتحل ومفيش مشاكل فى الوقت دا بس مينفعش خالص كل ما اكون عايز اروح او ارجع من مكان هكلم حد يساعدنى، طيب اعمل ايه؟ اشترى خط تانى؟ افضل ادور على Wifi كل ما اكون عايز اروح مكان او ارجع؟، فضلت افكر، خصوصا انى لازم الاقى فكرة!

مش معقول يعنى مينفعش استغل الانترنت المجانى دا خصوصا ان فيسبوك وواتساب وتويتر شغالين يعنى ولازم استغلهم فى حاجه غير انى اطلب من شخص يساعدنى من خلالهم، تقلبها كدا تعدلها كدا ملهاش حل، جاتلى فكرة رجعت البيت فعملت research علشان اشوف قابلية تطبيقها، نزلت proxy على موبايلى الاندرويد اللى عليه نفس التطبيقات وعليها نفس ال user بتاعى، مسكت تطبيق تطبيق و اعترضت كل ال requests علشان اشوفه ايه المتغيرات variables الموجوده جواها وايه اللى ممكن اقدر اتحكم فيه بشكل واضح، كبداية لتنفيذ الفكرة، لقيت ان تطبيقين من تطبيقات الدراجات وكمان الاسكوتر بتقدر تتحكم فى variable او متغير parameter بتباصيه للركوست برقم الدراجة علشان يحصلها فك او unlock وتقدر تستخدمها فى انك تعمل اى مشوار ودى موضوعها سهل جدا اسهل من انك تديلها اى لوكيشن او عنوان هتتحرك منه او عنوان هتوصل له، وكانت مجرد بداية لحد ما افحص باقى التطبيقات الخاصة بالعربيات زى اوبر و Didi الصينية وغيرهم، قولت كبداية يلا اجرب الفكرة، مسكت ال request بالكامل الخاص بعمل unlock للدراجة وحولته ل curl request ورفعته على سيرفر من سيرفراتى مع الاخذ فى الاعتبار انى هباصى رقم الدراجة فى صورة Get parameter علشان يسهل عليا الموضوع وانا برا لما اطلب انى استخدم الدراجة دى، الرابط اصبح شكله كالتالى server/bikeUnlock.php?id=XXX وعملت نفس الموضوع مع ركويست ال lock ودا اللى فى النهاية بيقول للخدمة انى خلاص انتهيت من استخدام الدراجة فيقوم قافل القفل بتاعها واللى بردو كان الرابط له الشكل التالى server/bikeLock.php?id=XXX المهم استضفت الملفين على سيرفرى الخاص زى ما وضحت، خرجت الشارع فى اليوم دا علشان اجرب، سيرفرى طبعا زيه زى اى خدمة تانيه هيبقى غير متاح انى استخدمة ودا بسبب المشكلة الاصليه وهيا “الانترنت المتوفر عندى انترنت مجانى لمواقع وخدمات معينة فقط”، طيب الفكرة فين بقى؟ الفكرة فى انى استخدم خدمات من الخدمات المتوفرة دى فى انى اخليها هيا اللى تطلبلى الركوست وبالتالى سيلة المواصلات (الدراجة)، بالظبط، زى ما قريت كدا، هخليهم هما اللى يطلبولى دا، يعنى مش هكلم صديق ليا اقوله افتح الرابط دا فيفتحه ويطلبلى هوا الوسيلة، لا، هخلى فيسبوك نفسه هوا اللى يعمل كدا.

بحسب خبرتى فى ال bug hunting فانا عارف ان فيسبوك زيه زى اى خدمات تانية كتير بيعمل fetch لأى رابط علشان يعرض المعاينة الخاصة بالموقع دا، ببساطة لما بتيجى تعمل مشاركة لرابط من موقع معين بتاخد بالك ان فيسبوك بيقوم عارض الصورة الرئيسية للخبر دا وكمان العنوان ومخلص عن الرابط؟ ياترى بيعمل دا ازاى؟ ايوه زى ما ممكن تكون تخيلت كدا، فيسبوك بيقوم فاتح الرابط على واحد من سيرفرات ال crawling “الامنة” دى بيعمل ال fetch للرابط وبيقوم بإستخراج المعلومات دى ويحطها فى البوست اللى انت بتشيره بإستخدام user agent خاص اسمه facebookexternalhit/1.1، المفيد لينا هنا هيا فكرة ان “الرابط بيقوم بفتحه فيسبوك اثناء عملية ال crwaling” واللى محتاج يعرف تفاصيل فنية اكتر عن العملية دى يقرا الدوكمنت الرسمى دا من فيسبوك نفسهم هنا: https://skty.cc/fm (طبعا لحد هنا تقنياً الفكرة وضحت)، وعلى فكرة فيسبوك نفسه بسيرفراته المباشرة لو مبيتحكمش فى البروتوكول او البورت للرابط المطلوب ساعتها فيسبوك هيكون فيه ثغرة من نوع SSRF او Server-Side Request Forgery ودا مش موضوعنا، نكمل، بالفعل، خرجت اليوم دا مخصوص علشان اجرب الفكره، اخدت الرابط وحفظته فى نوت على الموبايل، اتمشيت لأقرب محطة فيها دراجات، طبعا كل دراجة بيبقى عليها QR Code تقدر تسكانه علشان يسهل عليك عملية ال unlocking وفى نفس الوقت موجود اسفل ال QR Code دا كود مكون من ٥ خانات (احرف وارقام) علشان يعنى لو حصل وكنت اخر واحد على الكوكب معاه موبايل مفهوش كاميرا او الكاميرا بايظه فمن منطلق ال Usability تقدر تستخدم الخدمة بردو، ودا اللى نفعنى، اخدت الكود وقمت فاتح النوت اللى حفظت فيها ال url وقمت معدل الرابط بإضافتى للكود بعدها قمت ناسخه بالكامل وفتحت فيسبوك من المتصفح عن طريق الرابط free.facebook.com ودا اللى بتقدر تستخدمه علشان تستخدم خدمة فيسبوك على الانترنت المجانى المتاح للباقة بتاعتك الموقع بيقول دا بوضوح تقدر تشوفه فى الاسكرين شوت دى: https://skty.cc/fn وقمت ضايف الرابط الخاص بالخدمة الخاصة بالدراجات فى بوست وضبطت اعدادات الخصوصية بحيث يبقى البوست انا بس اللى شايفه only me ومحدش غيرى يقدر يوصله، هوب فيسبوك شغل ال crawler بتاعه وبالفعل وكما كنت متوقع قام بتصفح اللينك علشان يقدر يعمله معاينه ويشوفه هل هوا لينك سليم ولا لا من الناحية الفنية والامنية بس مش دا هدفنا، الهدف بتاعنا اتحقق لما سمعت قفل العجلة بيعمل “تيك” وصوت تأكيد بدء استخدامى للدراجة نفسه عمل “تيت تيت” بمعنى انت جاهز تقدر تاخد الدراجة او الاسكوتر وتبدأ مشوارك، انتهى المشوار وعملت نفس الموضوع مع ركوست ال locking واللى بيأكد نهاية المشوار. وهو المطلوب اثباتة 😀

واحده من الحاجات اللى اكتشفتها زمان هى انى كنت بنفس السيناريو دا اقدر اتصفح الانترنت عن طريق انى أ proxy كل شئ من خلال خدمة من الخدمات كانت متاحه ومصابه فى نفس الوقت بس بكل تأكيد بلغت عن الثغرة واخدت المكافأه والثغرة اتسدت!

بالتأكيد طبعا واجهتنى مشاكل بس كلها صلحتها لحد ما خرجت النتيجة النهائية زى ما قريتها فى البوست كدا، طوع التكنولوجيا انها تشتغل ليك

https://www.facebook.com/SymbianSyMoh/posts/3590010081014053