تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

LFI چیست؟ معرفی آسیب پذیری Local File Inclusion قسمت 2

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 در سیستم هدف موجود است .

وب سایت توسینسو

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

وب سایت توسینسو

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

وب سایت توسینسو

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

وب سایت توسینسو

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

نویسنده : رامین شهیر

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

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

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند