PHP Core Vulnerabilities
در خصوص آسیب پذیری هایی که در Engine مفسر خود زبان های PHP رخ میده, میخوایم صحبت کنیم و ببینیم آیا میشود به WebApplication های 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
در پست های بعد برخی از این آسیب پذیری هارو باز کرده و تحلیل خواهم کرد...
نظرات
ارسال یک نظر