Loading…

جزیره امنیت اطلاعات و ارتباطات

ارسال کننده: ramint16
بیشتر توی فیلد امنیت ، بخش Pentest کار میکنم ... +MCSَA CEH , CCNA ، ECSA ، CHFI ، AWAPT ، Security ، علاقه مند به امنیت ...مشغول به انجام پروژه های امنیت ... هر مطلبی که مربوط به شبکه و امنیت باشه ازش لذت می برم و با علاقه دنبال میکنم ...
ارسال پیام خصوصی
امتیازات این مطلب
نکته: آسیب پذیری LFI ( قسمت دوم و پایانی )
PHP ZIP Wrapper LFI
ZIP Wrapper اجازه می دهد که فایل .zip را که سمت سرور است اجرا کنید و مهاجم با استفاده از این قابلیت و فایل آپلود آسیب پذیر ، می تواند فایل .zip خود را که شامل فایل های مخرب است ، از فیلتر سایت رد کند و LFI را اجرا کند .
مثال برای این نوع اتک :
1 – ابتدا یک Reverse shell ایجاد میکنیم .
2 – آن را با .zip فشرده میکنیم .
3 – این فایل زیپ را در یک سرور آپلود می کنیم .
4 – با استفاده از Zip Wrapper ، به صورت زیر فایل خود را در سرور مورد نظر آپلود می کنیم :
php?page=zip://path/to/file.zip%23shell
5 – این دستور ، فایل zip ما را در سرور extract می کند ، اگر سرور مورد نظر پسوند .php را به فایل اضافه نمی کند ، خودتان پسوند .php را به فایل shell اضافه کنید .

اگر سرور مورد نظر اجازه آپلود فایل zip را ندهد ، باید با روش های Bypass کردن آپلود جلو برویم .
Null Byte Technique
به کد زیر توجه کنید:
<?php
  include($_GET["page"] . ".php");
?>
در کد بالا اگر ورودی کاربر home باشد، تابع include فایل home.php را فراخوانی می کند. یعنی هر چیزی را وارد کنیم ، پسوند .php به آن اضافه می شود ، بدین ترتیب اگر ما دستوری مانند etcpasswd را قرار دهیم، تابع فایل etcpasswd.php را فراخوانی خواهد کرد که چون چنین چیزی وجود ندارد ، ما چیزی را نخواهیم دید . در این حالت از روش Null Byte استفاده خواهیم کرد.
vuln.php?page=/etc/passwd%00
vuln.php?page=/etc/passwd%2500
در شرایطی که کد به شکل زیر است از ترکیب Directory traversal و Null byte استفاده می کنیم :
 <?php
  include("./pages/" . $_GET["page"] . "/index.php");
?>
روش دور زدن :
/vuln.php?page=../../../../etc/passwd%00

Truncation LFI Bypass

Truncation تکنیک Bypass دیگری است که در آن مهاجم با اضافه کردن پارامتر های بلند Bypass را انجام میدهد ، بدین صورت که وب اپلیکیشن پارامتر های وارد شده را کوتاه می کند که ممکن است بتوان فیلتر پارامتر های ورودی را دور زد .
vuln.php?page=/etc/passwd........................................................................................
vuln.php?page=../../../../../../../..
/../../../../../../../../../../../../../../../../etc/passwd
vuln.php?page=/etc/passwd/../../../../../../../../../../../../../../../../../..

Log File Contamination

Log File Contamination یک فرآیندی است که در آن سورس کد های خود را در فایل لاگ سرور inject می کنیم . این کار را با روش های دیگر انجام می دهیم که که نتیجه در لاگ فایل ذخیره می شود ، مثلا php Reverse shell کد خود را در url ، inject می کنیم که باعث می شود syslog یک لاگ در قسمت access log آپاچی ایجاد کند با عنوان 404 Not Found و اتکر با استفاده از روش های گفته شده برای LFI به access log دسترسی پیدا می کند و کد php reverse shell خود را اجرا می کند .
بعد از inject کردن کد خود ، باید بتوان به فولدر لاگ ها دسترسی پیدا کرد که به طور معمول ، ابتدا وب سرور را تشخیص داده سپس مسیر پیش فرض برای لاگ را چک می کنیم . اگر در مسیر پیش فرض نبود ، می توانید از FuzzDB’s Burp LFI payload lists استفاده کنید . اگر این لیست ها را با استفاده از Burp Intuder چک شود ، سریع تر نیز میتوان به نتیجه رسید .
همچنین در وب سرور های apache و Nginx می توان با استفاده از netcat عمل inject را انجام داد .

EmailaReverseShell
اگر سیستم هدف ، ایمیل را مستقیما یا به وسیله یک سیستم دیگر در یوزر www-data ( یا یوزر آپاچی ) ذخیره کند ، میتوان یک Reverse Shell را به هدف ایمیل کرد . اگر رکورد MX موجود نباشد اما SMTP در دسترس باشد ، می توان به میل سرور هدف متصل شد و ایمیلی برای یوزر www-data apache فرستاد .ایمیل به یوزر آپاچی مثل www-data فرستاده می شود تا مطمئن شویم که فایل سیستم اجازه خواندن فایل varspoolmail/www-data که شامل PHP Revesre shell کد می باشد را دارد .

در تصویر زیر مجاهم از اسکریپت smtp-user-enum استفاده کرده تا مطمئن شود یوزر www-data در سیستم هدف موجود است .
Image


در تصویر زیر می بینیم که مهاجم چگونه با استفاده از تلنت به یوزر www-data ایمیل می فرستد .
Image


در این تصویر می بینیم که چگونه به فایل مورد نظر که حاوی Reverse Shell است متصل می شده است :
Image

در این تصویر نیز نتیجه Reverse Shell ایمیل شده را با listener netcat می بینیم .

Image


امیدوارم که از این مقاله استفاده مفید را برده باشید و به طور کامل با آسیب پذیری LFI آشنا شده باشید .


نویسنده : رامین شهیر
منبع :Exploit-db و گروه امنیتی گوردبیت
دیدگاه ها

هیچ دیدگاهی برای این مطلب ارسال نشده است

برای ارسال نظر وارد شوید.