SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

توضیحات آسیب پذیری Remote File Uploader

بستن
این تاپیک مهم می باشد .
X
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • توضیحات آسیب پذیری Remote File Uploader

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

    عواقب آپلود فایل بدون محدودیت میتواند متفاوت باشد ، به عنوان مثال وقتی نفوذگر WebShell خو را بر روی سرور انتقال دهد  میتواند :

    •    سیستم را بطور کامل تصاحب کند .
    •    دسترسی به پایگاه داده دارد .
    •    انتقال و دریافت فایلهای نرم افزار کاربردی تحت وب برای او فراهم است .
    •    میتواند کد صفحات به دلخواه تغییر دهد .
    •    و ....

    هنگامی که شما در این آسیب پذیری یک فایل را آپلود مینمائید ، اگر دسترسی مستقیم به فایل آپلود شده خود داشته باشید یکی از مراحل کارطی شده ، حال نفوذگر باید آپلودر هدف را از لحاظ امنیتی مورد بررسی قرار دهد تا بتواند فایل Webshell خود را با موفقیت به سرور انتقال دهد .
    بطور کلی مراحل بای پس آپلودر به چند دسته تقسیم میشود :

    •    بای پس حجم
    •    بای پس محتوا
    •    بای پس Extension
    •    تغییر هدر های ارسالی به سرور

    برای جلوگیری از چنین رویداد هایی شما باید در هنگام برنامه نویسی نرم افزار تحت وب خود تمامی این گزینه ها را پیش بینی نمائید و برای پردازش صحیح این روش های بای پس راه حل های مناسب بیا ورید .

    تاثیر این آسیب پذیری بالا است، وب شل یا کد آسیب پذیر را می توان در زمینه سرور و یا بر روی سرویس گیرنده اجرا کرد. احتمال تشخیص برای مهاجم بالا است. شیوع شایع است. در نتیجه شدت این نوع از آسیب پذیری بالا است.
    با اجرای یک وب شل کنترل نرم افزار تحت وب فرد برای نفوذگر فراهم میشود . همچنین :

    •    یک مهاجم میتواند یک صفحه فیشینگ بر روی وبسایت هدف قرار دهد .
    •    یک مهاجم میتواند با الهام گرفتن از حملاتی همانند XSS بر روی وبسایت هدف برای سرقت کوکی های کاربران اقدام نماید .
    •    یک مهاجم میتواند سایر تصاویر ارسالی به سرور را تغییر دهد و در صورتی که تصویر در وبسایت یا وبسایتها بکار رفته باشند ...
    •    یک مهاجم میتواند از وبسرور شما برای میزبانی نرم افزار های مخرب ، تبلیغاتی ، بات نت و ... استفاده نماید .

    حملاتی که از سوی نرم افزار تحت وب انجام می پذیرد .
    این حملات میتواند شامل فاکتور های متفاوت باشد جدا از آپلود شل و بای پس آپلودر :
    •    بارگذاری فایل های بزرگ – فایلی برای انکار فضای سرویس
    •    بازنویسی فایل های مهم موجود بر سرور همانند فایل های شامل نام و اطلاعات کاربران
    •    بارگذاری پرونده حاوی اطلاعات شخصی دیگران
    •    حملاتی که از سوی نرم افزارتحت وب بر روی سیستم شما انجام می پذیرد .
    •    آپلود فایل های اجرایی EXE آلوده به تروجان ها و کیلاگر ها برای آلوده سازی سیستم کلاینت ها
    •    آپلود نرم افزار های آلوده و یا تغییرات در سایر بسته های دانلودی توسط کاربران
    •    آپلود فایل های HTML آلوده به کد های کوکی گربر و یا Iframe های آلوده به حملات Cross-site Scripting (XSS)

    نکته قابل به ذکر در اینجا :

    شما در بعضی از وبسایت ها یا وبسایتهای رابط با مدیر هدف آسیب پذیری XSS شناسایی میکنید حال آپلودر وبسایت اصلی هدف تنها .html را با موفقیت دریافت میکند در اینجا شما میتوانید با تعریف iframe از لینک آسیب پذیری XSS با مهندسی اجتماعی لینک فایل html از سایت هدف را به دست مدیر برسانید که عملا وقتی با یک فایل نا آشنا بر روی سایت خود مواجع شود فایل را باز میکند و کوکی سرقت میشود ، این ترفند را میتوان برای اپلودر هایی که تنها html میتوان بر روی آن انتقال داد انجام داد .

    روش های بای پس آپلودر های حفاظت نشده :
    •  بای پس Extension


    شاید در برخی مواقع برنامه نویسان فراموش کنند برخی از پسوند ها و تغییرات  بر روی آنها را محدود نمایند ، این خطر باعث آپلود فایل وب شل توسط نفوذ گر میشود به عنوان مثال :[align=center]php5 /asp; /asp;00% /php3 / shtml /asa / cer / jsp[/align]
    در برخی مواقع نیز نفوذ گر محدودیت ها را دور میزند و با تغییر پسوند فایل مورد نظر خود را بر روی سرور انتقال میدهد . همانند مثال زیر :
    سایتی تنها پسوند jpg تصویر را مورد قبول قرار میدهد و نفوذگر با تغییر پسوند به حالت 1.php.jpg محدودیت را دور میزند این عمل در صورتی که توسط برنامه نویس پوشش امنیتی نشده باشد Bypass میشود و پس از اجرای فایل اولین پسوند توسط وب سرور پردازش و اجرا میشود .
    نمونه ای از این حملات را میتوانید در تصویر زیر مشاهده نمائید :[align=center]



    [/align]
    • بای پس محتوا :

     بعضی دیگر از آپلودر ها از خواصیت اعتبار سنجی و بررسی مقدار فایل استفاده میکنند به عنوان مثال اگر فایلی از نوع تصویر باشد محتویات سورس فایل بررسی میشود . با یکدیگر کد یک تصویر ساده را بررسی میکنیم :[align=center]
    [/align]
    این تصویر با File Extension از نوعGIF  میباشد و اگر شما به تصاویر GIF دقت کرده باشید کد GIF89A سر آیندی برای معرفی تصاویر از نوع GIF میباشند . حال اگر وب شل ما در ابتدای سورس خود از این کد استفاده نماید میتواند آپلودر هدف را bypass نماید ، به تصویر زیر دقت نمائید :[align=center]
    [/align]در این وب شل برای بای پس در مرحله محتوای آپلودر هدف کد تصویر GIF بکار برده شده است و در صورتی که برنامه نویس در تعریف و بررسی دریافت ها تعریف صحیحی نداشته باشد ، وب شل آپلود میگردد . البته در بای پس این نوع محدودیت روش های مختلفی برای bYpass محتوا وجود دارد ...
      بای پس حجم :
    در این نوع حملات برنامه نویسی مقدار معین یا حدودی برای فایلهای خود در نظر گرفته است و اگر فایلی با مقدار حجم بیشتر آپلود شود با خطا مواجه میشود ، نفوذگر در این حملات از یک فایل با کمترین حجم ممکن استفاده خواهد کرد . این نوع محدودیت معمولا در آپلودر های فایلهای تصویری استفاده میشود و حجم بالاتر از مقدار تعریف شده را دریافت نمیکند .
     
    • بای پس درخواست های ارسالی پروتکل HTTP request header


    سرآیندهای پروتکل http  یا فیلدهای سرآیند (به انگلیسی: HTTP Header Fields) جزیی از پیام‌های ارسالی و دریافتی در پروتکل http می‌باشند. این فیلدها پارامترهای یک ارتباط در این پروتکل را مشخص و مقداردهی می‌کنند ،این اطلاعات، در قالب یک رکورد متن میباشد، که از  مرورگر کاربران به یک سرور وب ارسال میشود که این اطلاعات آنچه مرورگر از سرور میخواهد میباشد در صورتی که وب سرور header ارسال را تایید کند درخواست اجرا میشود .
    حال اگر در یک آپلودر درخواست ارسالی به وب سرور ویرایش شود میتوان نوع File Extension ارسالی توسط نفوذگر تغییر نماید که در نهایت اگر برنامه نویس بر درخواست های ارسالی به وب سرور تعریف صحیحی نداشته باشد فایل با تغییرات به سرور منتقل و در نهایت آپلود میشود .
    افزونه های و ابزار های مختلفی برای ویرایش هدر های ارسالی پروتکل http  طراحی شده است که میتوان به
    •    افزونه های مرورگر فایر فاکس
    •    ابزار Burp Suite
    •    و ....
    اشاره نمود ، نمونه از این  حملات را در تصویر زیر میتوانید مشاهده نمائید :[align=center]

    [/align]مقدار ارسالی به وب سرور  یک وب شل با پسوند .asp;.jpg میباشد ، هدف نفوذگر این میباشد که فایل ارسالی را در مرحله ارسال هدر ویرایش و به نام left.asp آپلود نماید ، این عمل را ما با افزونه tamper data  فایرفاکس انجام میدهیم .[align=center]
    [/align]هدر :

    کد:
    -----------------------------299141668113483\r\nContent-Disposition: form-data; name="YourFile"; filename="left.asp;.jpg"\r\nContent-Type: image/jpeg\r\n\r\nGIF89a;\r\n<%@ LANGUAGE = VBScript.Encode %>\r\n<%\r\nOn Error Resume Next\r\nServer.ScriptTimeOut  = 7200\r\nClass FileUploader\r\n    Public  Files\r\n    Private mcolFormElem\r\n    Private Sub Class_Initialize()\r\n        Set Files = Server.CreateObject("Scripting.Dictionary")\r\n        Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")\r\n    End Sub\r\n    Private Sub Class_Terminate()\r\n        If IsObject(Files) Then\r\n            Files.RemoveAll()\r\n            Set Files = Nothing\r\n        End If\r\n        If IsObject(mcolFormElem) Then\r\n            mcolFormElem.RemoveAll()\r\n        
    هدر تغییر داده شده :

    کد:
    -----------------------------299141668113483\r\nContent-Disposition: form-data; name="YourFile"; filename="left.asp "\r\nContent-Type: image/jpeg\r\n\r\nGIF89a;\r\n<%@ LANGUAGE = VBScript.Encode %>\r\n<%\r\nOn Error Resume Next\r\nServer.ScriptTimeOut  = 7200\r\nClass FileUploader\r\n    Public  Files\r\n    Private mcolFormElem\r\n    Private Sub Class_Initialize()\r\n        Set Files = Server.CreateObject("Scripting.Dictionary")\r\n        Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")\r\n    End Sub\r\n    Private Sub Class_Terminate()\r\n        If IsObject(Files) Then\r\n            Files.RemoveAll()\r\n            Set Files = Nothing\r\n        End If\r\n        If IsObject(mcolFormElem) Then\r\n            mcolFormElem.RemoveAll()\r\n        
    در بعضی مواقع نیز  Content-Type متناسب با فایل ارسالی تغییر داده میشود .

    تهیه و تنظیم : حسین بیضایی
    گروه امنیتی و تحقیقاتی ایران هک
    کپی برداری از این مقاله با ذکر منبع مانعی ندارد .

    [img]images/smilies/Smileys/6.gif[/img]

     

     
    [align=center][/align]
صبر کنید ..
X