ویرگول
ورودثبت نام
ina§
ina§
ina§
ina§
خواندن ۱ دقیقه·۶ سال پیش

Remote file upload

۹باگ rfu یا همان Remote file upload به معنی آپلود فایل های غیرمجاز به سرور در جهت دستیابی به دسترسی کامل به سرور می باشد.

این باگ از آنجایی به وجود می آید که برنامه نویس و توسعه دهنده های پلتفرم، مجاز بودن فایل آپلودی توسط کاربر را بررسی نمیکنند و یا اینکه تمامی فرد نفوذگر با دور زدن validation های وبسایت فایل مخرب یا شل را آپلود میکند.

بطور عمده محدودیت ها و روش هایی که توسعه دهندگان در جهت جلوگیری از آپلود فایل غیر مجاز استفاده میکنند عبارتند از :

1 - blacklist

در این روش لیستی از پسوند ( extension) های غیر مجاز را سرور بررسی میکند.

.php,.asp,.

روش بایپس:


Double extension: shell.php

capital letter: shell.pHP, shell.aSp

Semicolon : shell.php;.jpg

Backslash : test.php/

2- white list

در این روش برخلاف روش قبل سرور بررسی میکند که پسوند فایل یکی از پسوند های مجاز باشد

بطور مثال در قسمت آپلود عکس برای پروفایل کاربری سرور یکی از extension های زیر را قبول میکند

Jpg png gif jpeg, ...

روش بایپس:

Double extension:

shell.png.php

Null byte:

image.php .png

3 - Content-type validation

شناسه فایل در صورتی که image/jpeg باشد اجازه آپلود داده میشود در غیر این صورت ، برای آپلود فایل دسترسی داده نمیشود .

روش بایپس:

ابتدا درخواست را شنود میکنیم و پیش از ارسال به سرور شناسه را به شناسه مجاز تغییر میدهیم.

4.content lenth Validation

حجم فایل آپلودی محدود میشود و در صورتی که بالاتر از حجم مورد نظر بطور مثال ۱۰۰ کیلوبایت باشد آپلود صورت نمیگیرد.

روی بایپس:

با یک پیلود ساده این مشکل برطرف میشود :

<?php if($_GET[‘c’]) { system($_GET[‘c’]); } ?>

در اکثر مواقع سرور ترکیبی از این بررسی های امنیتی را انجام میدهد و ما باید انواع بایپس ها را امتحان‌کنیم.

همچنین امکان تبدیل باگ rfu به چندین باگ دیگر نیز وجود دارد :

با نام‌گذاری فایل بصورت

../../logo.png

باگ Directory traversal پدید می آید .

sleep(10).jpg SQL injection

<svg =alert(document.domain)> XSS

۳
۰
ina§
ina§
شاید از این پست‌ها خوشتان بیاید