یک نکته جالب امنیتی
سه شنبه, ۲۲ فروردين ۱۳۹۱، ۰۱:۱۸ ب.ظ
در یک شب کاری که کلی ژان گولر بازی در آوردیم, قبل از خواب یک دفعه می بینیم که سایت آقای ژان گولر تغییراتی پیدا کرده.
بعد از هر اسکریپت یک سری اطلاعات دیگه نمایش داده می شه!!!
کل فایل ها رو زیرو رو می کنیم ولی خبری از این اسکریپت اضافه نیست؟؟؟
نکته ای که اینجا هست(حداقل برای ما جالب بود) اینه که یک نفوذ گر محترم تونسته به فایل php.ini دسترسی پیدا کنه و محتویات اون رو کمی تغییر بده. خیلی ساده اومده و به ویژگی auto_append_file مثلا مقدار "bad_script" رو اضافه کرده.
اتفاقی که اینجا افتاده: از این به بعد, به انتهای تمام اسکریپت های شما این فایل append می شه. به کمک همین فایل می شه کلی کارهای جالب انجام داد که اون رو به خلاقیت مثبت و منفی شما واگذار می کنیم. نکته ای که نفوذ گر باید به اون دقت کنه اینه که فایل مخرب رو باید جایی قرار بده که جزو include_path های آپاچی باشه.
خلاصه ماجرا از این قراره:
[sourcecode language="bash"]
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
; Zend Type
; UNIX: "/path1:/path2"
;include_path = ".:/usr/local/zend/share/ZendFramework/library:/usr/local/zend/share/pear"
include_path = ".:/php/includes:/usr/share/pear"
[/sourcecode]
در تنظیمات بالا که مربوط به php.ini هستش, سه مکان ' . ' , ' /php/includes ' , ' /usr/share/pear ' به عوان
include_path شناخته شده و هکر کافیه تا فایل مخرب خودش رو در یکی از این ۳ دایرکتوری قرار بده و به کمک دستکاری زیر اون فایل رو به اسکریپت های شما append کنه.
[sourcecode language="php"]
; Automatically add files after PHP document.
; http://php.net/auto-append-file
auto_append_file = "bad_script"
[/sourcecode]
این قایل مخرب هم می تونه هر چیزی باشه مثل یک تابع خوب که خوراک خوشمزه دوستان هکره:
[sourcecode language="bash"]
//bad_script
phpinfo();
[/sourcecode]
یک راه حل: بعد از اتمام بلوک ها در اسکریپت خودتون از تابع ()exit استفاده کنید تا فایل مخرب append نشه.
از آنجایی که این هکر توانایی rewrite کردن php.ini رو داشته بهتره یک فکر اساسی به حال سرور خود بکنیم.
اصولا خاموش کردن اون بهترین راه حل برای تامین امنیت هست, خصوصا اگر که ویندوزی باشه.
بعد از هر اسکریپت یک سری اطلاعات دیگه نمایش داده می شه!!!
کل فایل ها رو زیرو رو می کنیم ولی خبری از این اسکریپت اضافه نیست؟؟؟
نکته ای که اینجا هست(حداقل برای ما جالب بود) اینه که یک نفوذ گر محترم تونسته به فایل php.ini دسترسی پیدا کنه و محتویات اون رو کمی تغییر بده. خیلی ساده اومده و به ویژگی auto_append_file مثلا مقدار "bad_script" رو اضافه کرده.
اتفاقی که اینجا افتاده: از این به بعد, به انتهای تمام اسکریپت های شما این فایل append می شه. به کمک همین فایل می شه کلی کارهای جالب انجام داد که اون رو به خلاقیت مثبت و منفی شما واگذار می کنیم. نکته ای که نفوذ گر باید به اون دقت کنه اینه که فایل مخرب رو باید جایی قرار بده که جزو include_path های آپاچی باشه.
خلاصه ماجرا از این قراره:
[sourcecode language="bash"]
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
; Zend Type
; UNIX: "/path1:/path2"
;include_path = ".:/usr/local/zend/share/ZendFramework/library:/usr/local/zend/share/pear"
include_path = ".:/php/includes:/usr/share/pear"
[/sourcecode]
در تنظیمات بالا که مربوط به php.ini هستش, سه مکان ' . ' , ' /php/includes ' , ' /usr/share/pear ' به عوان
include_path شناخته شده و هکر کافیه تا فایل مخرب خودش رو در یکی از این ۳ دایرکتوری قرار بده و به کمک دستکاری زیر اون فایل رو به اسکریپت های شما append کنه.
[sourcecode language="php"]
; Automatically add files after PHP document.
; http://php.net/auto-append-file
auto_append_file = "bad_script"
[/sourcecode]
این قایل مخرب هم می تونه هر چیزی باشه مثل یک تابع خوب که خوراک خوشمزه دوستان هکره:
[sourcecode language="bash"]
//bad_script
phpinfo();
[/sourcecode]
یک راه حل: بعد از اتمام بلوک ها در اسکریپت خودتون از تابع ()exit استفاده کنید تا فایل مخرب append نشه.
از آنجایی که این هکر توانایی rewrite کردن php.ini رو داشته بهتره یک فکر اساسی به حال سرور خود بکنیم.
اصولا خاموش کردن اون بهترین راه حل برای تامین امنیت هست, خصوصا اگر که ویندوزی باشه.
ولی اون هکری که به php.ini دسترسی پیدا کنه دیگه هکر نیست ! مدیر هاستینگه :دی