PHP Core Vulnerabilities

در خصوص آسیب پذیری هایی که در Engine مفسر خود زبان های PHP رخ میده, میخوایم صحبت کنیم و ببینیم آیا میشود به WebApplication های PHP بیس نفوذ کرد با استفاده از آسیب پذیری های حافظه؟:)

آسیب پذیری های در مفسر php

آسیب پذیری های امنیتی به چه دلیل رخ می دهد؟

آسیب پذیری های امنیتی محبوب به علت شیوه های برنامه نویسی بد یا اشتباهات برنامه نویسی رخ میده. اما حتی زمانی که همه بهترین شیوه ها برای برنامه نویسی امن به دقت پیگیری می شوند، کد منبع برنامه php تنها به همان اندازه امنه که مترجم php اون یعنی php Core امن هستش. در این پست، ما خواهیم دید که چگونه اشکالات و آسیب پذیری های مربوط به حافظه در هسته php میتونه امنیت برنامه رو تحت تاثیر قرار بده,

آمار ها نشون میده که 93 درصد وبسایت هایی که با زبان php طراحی شدند php نسخه 5 استفاده می کنند و فقط 6 درصد از ورژن های جدید php 7 استفاده می کنند, مابقی هم از نسخه های ویرایشی زبان php استفاده میکنند, ورژن php 5.6 پشتیبانی نمی شود، هر چند, انتشار پچ در سال های گذشته مشکلات امنیتی هسته php را رفع کرده است, اما تنها 62 درصد از تمام ورژن های استفاده شده در نسخه ۵ ورژن 5.6.30 بوده که در ژانویه 2017 آخرین پچ اون بروز شده,با این تفاسیر 79 درصد وبسایت های php به آسیب پذیری های حافظه که در php interpreter رخ میده آسیب پذیر خواهند بود, یکی از دلایل بروز نکردن نسخه زبان php به این دلیل هستش که طراحان سایت که با یک ورژن خاصی یک وبسایت را طراحی کرده اند اگر بخوان بروز رسانی کنند کدهایی که نوشته اند بهم خواهند خورد Chenge Log هایی که تا به امروز اتفاق افتاده رو مشاهده کنید

https://secure.php.net/manual/de/migration70.changed-functions.php

خب این نقطه ضعف خوبی میتونه باشه که اگر از php Core آسیب پذیری Research و کشف بشه میشه به عنوان یک حفره طولانی مدت بهش نگاه کرد,اما این سبک آسیب پذیری هارو چگونه کشف کنیم, خب زبان php یک زبان سطح بالاست که قابلیت مدیریت سفارشی حافظه رو نداره, کدهای php به همین دلیل نمیتونند باعث رخداد آسیب پذیری Memory Corruption بشوند,اما در عوض، مدیریت حافظه توسط مترجم php انجام می شود که کد php را بر روی وب سرور اجرا می کند, این مترجم در زبان c نوشته شده است و میتونه از آسیب پذیری Memory Corruption تأثیر بگیره,در واقع، هسته php بیش از 5،700 توابع و کلاس های ساخته شده است, اگر یکی از ویژگی های اجرای داخلی توسط یک آسیب پذیری مثلا Memory Corruption منجر به Exploit شدن php Core بشه که این Exploit از طریق کد php فراخوانی میشه, 


<?php

feature(); ---> PHP Interpreter (Zend Engine) ---> Core (C feature)

برخی از آسیب پذیری هایی که در این خصوص کشف شده است:

unserialize()      < 7.0.15 Integer Overflow         CVE-2017-5340

wddx_deserialize() < 7.0.15 NULL pointer dereference CVE-2016-10162

curl_escape()      < 7.0.10 Buffer Overflow          CVE-2016-7134

str_pad()          < 7.0.4  Integer Overflow         CVE-2016-4537

utf8_encode()      < 7.0.4  Integer Overflow         CVE-2016-4345

imagerotate()      < 5.5.31 Incorrect Buffer Size    CVE-2016-1903

Open terminal
1.searchsploit PHP
2.cat /usr/share/exploitdb/exploits/php/dos/38122.txt
Yet Another Use After Free Vulnerability in unserialize() with SplObjectStorage

در پست های بعد برخی از این آسیب پذیری هارو باز کرده و تحلیل خواهم کرد...

نظرات

پست‌های معروف از این وبلاگ

آسیب پذیری هایی که اغلب نادیده گرفته می شوند

کاربرد های زبان php

شما باید گوگل کروم خود را فورا به آخرین نسخه بروزرسانی نمایید