توجيه الاستدعاء بدالة (Invoke) في لغة التجميع Assembly

السلام عليكم ورحمة الله تعالى و بركاته

درس الموضوع بسيط و مفيد جدا للمبتدئين حول طرق توجيه الاستدعاء (INVOKE Directive) و هذا ما تميزت به معمارية 32bit في كل من الأسمبلر Masm و Fasm.

حيث سهل استخدام صيغ الاستدعاءات و تمرير الوسائط بالتعامل مع دوال API بصورة كبيرة و بسطر واحد بدل تعليمات برمجية طويلة نوعا ما بالتقريب (خمسة أسطر) بطريقة الدفع الى المكدس (Stack) باستخدام PUSH و استدعاء النداء CALL و تسمى بـ MODEL directive و المعلوم أنَّ هذه الطريقة تعمل فقط مع 32-bit و كلا الطريقتين صحيحتين ، لنلقي نظرة على تركيبة الجملتين (Syntax):

أسلوب: INVOKE Directive

INVOKE DumpArray, OFFSET array, LENGTHOF array, TYPE array

أسلوب : MODEL directive

push TYPE array
push LENGTHOF array
push OFFSET array
call DumpArray

تجربة استدعاء دالة MessageBox .. بالحالتين:


.code Main: 
invoke MessageBox, NULL, ADDR MsgText, ADDR MsgTitle, NULL 
end Main

push NULL 
push offset MsgTitle
push offset MsgText
push NULL
call MessageBox

هنا نرى الفرق بين الطريقتين و بساطة صيغة Invoke في التعامل مع الدوال و ربما تشبه Procedure في لغة أوبجكت باسكال ObjectPascl أو Delphi عموما.

جدول بسيط يوضح أهم أنواع Argument المستعملة في دالة Invoke :

هناك أداة اسمها Invoke Converter تقوم بالتحويل بين الطريقتين : 

التحميل من الميديافاير

و بالتالي نكون قد وضحنا أبسط الأمور حول استعمالات هته الدالة و ان شاء الله تكون دروس أخرى تتعلق بلغة التجميع

في أمان الله .

ثغرة XML-RPC في WordPress : تحليل الهجوم و طريقة الترقيع

السلام عليكم ورحمة الله تعالى و بركاته

سأتكلم في أول تدوينة لي على احدى ثغرات WordPress الخطيرة التي مازال يستخدمها القراصنة و  تصيب العديد بإختراق مواقعهم وذلك بسبب ضعف أمني داخل الملف XML-RPC الموجود في المجلد الرئيسي في سكربت الووردبريس ولم ترقع الى الآن و يستخدم المخترق طريقتين في استغلال الضعف بتنفيذ الهجومات عبر طريقتين التخمين/Brute Force أو  هجمات حجب الخدمة/DDoS attack

 


تحليل الهجوم :

هجومات حجب الخدمة تعتبر من أشهر تطبيقات الويب خطورة و اصابة ، و يتم تنفيذ هذا الهجوم عبر دالة Pingback و استغلالها عبر عمليات HTTP POSTData بترميز XML  :

<methodCall>
  <methodName>pingback.ping</methodName>
  <params>
     <param><value><string>http://victim</string></value></param>
     <param><value><string>http://reflector</string></value></param>
  </params>
</methodCall>

و كذلك هجومات التخمين عبر دالة wp.getUsersBlogs و استغلالها بنفس أسلوب حجب الخدمة عبر طلبات و عمليات HTTP POSTData

باستخدام أداة HackBar :

و من أجل تسهيل العملية للمقرصن يقوم باستخدام أدوات متعددة منها BurpSuite أو برمجة أدوات خاصة تسهل له التحكم الشامل بخصائص عديدة مثل ( Multi threading ) ليستهدف أكبر عدد من المواقع بأقل وقت ممكن.


 

الترقيع :

من أجل حماية ملف XML-RPC نقوم بتعطيله عبر تغيير بسيط بملف functions.php باستخدام الكود التالي :

function Remove_Unneeded_XMLRPC( $methods ) {
    unset( $methods['wp.getUsersBlogs'] );
    return $methods;
}
add_filter( 'xmlrpc_methods', 'Remove_Unneeded_XMLRPC' );

أو حظر الملف باستخدام htaccess :

<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>

و في الأخير، أحسن حل لحماية نفسك من التخمين أن تقوم باختيار كلمة مرور قوية و صعبة و خاصة بك و تجددها باستمرار.