در این پست میخواهیم روش شناسایی آسیب پذیری از طریق Injectioniframe و Injection HTML را بررسی کنیم. برای فهمیدن بهتر Injection HTML نگاهی به Injection iframe می اندازیم. iframe یک سند HTML است که در یک سند دیگر HTML جاسازی شده است که میتواند منجر به اجرای دستور مخرب میشود.
آسیب پذیری Iframe Injection زمانی صورت میگیرد که حمله کننده کد مخرب را در یک وب سایت جاسازی می کند و چندین دستور مخرب مورد نظر او روی سایت قربانی اجرا میگردد. این دستورات میتواند منجربه افشای اطلاعات محرمانه، سرقت اطلاعات کاربر قربانی و یا دیفیس وب سایت گردد. به عنوان مثال iframe تعبیه شده توسط مهاجم در صفحات معتبر دارای آسیب پذیری، منجربه ارجاع قربانی به سایت های مخرب می گردد و یا یک کپی از اطلاعات وارد شده توسط قربانی اطلاعات را سرقت میکند. و یا در سایتهایی که با WordPress طراحی شدهاند از این روش برای ارجاع به وب سایتهای تبلیغاتی مورد نظر خود سواستفاده مینمایند. پس این آسیب پذیری، یک نوع حمله بسیار رایج است که کاربران وب سایت را به آدرسهای غیرمجاز و آلوده ارجاع میدهد.
برای شناسایی این نوع از آسیب پذیری، از ابزار آموزشی bWAPP که یک وب سرور دارای آسیب پذیریهای مختلف است استفاده می کنیم. این ابزار می تواند بر روی یک وب سرور بر روی ماشین تست نصب گردد. برای نصب به صورت سریع می توانید از bee-Box استفاده نمایید که یک ماشین مجازی از پیش اماده برای این اقدام می باشد. نرم افزار دیگری که در شناسایی این آسیب پذیری استفاده میکنیم Burp است. Burp برای شنود ترافیک از طریق پروکسی نمودن آن استفاده میشود.
در ادامه برای اینکه آسیب پذیری Iframe Injection شناسایی گردد، سرویس bWAPP را اجرا مینماییم.
وقتی bWAPP را راه اندازی میکنیم میتوانیم باگی را که میخواهیم اکسپلویت کنیم را انتخاب کنیم و با انتخاب گزینه choose your bug و iframe Injection ادامه میدهیم. در صفحه نمایش داده شده با بررسی منبع کد، می توانیم تنظیمات پیکربندی آن را بررسی نماییم. در این صفحه تگ iframe مشاهده میشود که مشخص میکند این صفحه محتوای خود را از طریق آن نمایش میدهد.
<iframe frameborder=”۰” src=”robots.txt” height=”۲۵۰” width=”۲۵۰”></iframe>
پس از اجرای OWASP DirBuster روی سرویس bWAPP، می توان آدرس فایلهایی که در دایرکتوری آن قرار دارد را اسکن نمود. با توجه به اینکه بصورت پیش فرض دارای مسیر src=”robots.txt” میباشد، تطبیق این دو برای اطمینان از بررسیها را تا اینجا است. با نگاهی دیگر به URL صفحه bWAPP متوجه فایل PHP میشویم که بصورت iframe.php و دارای پارامتر paramURL است. با اینکار میتوان با تغییر نام فایل و پارامتر، مسیرهای دیگر را فاز نمود. به عنوان مثال به ۶۶۶ که نام فایل دیگری در دایرکتوری است، را جای robot.txt قرار میدهیم و آن را اجرا میکنیم و مشخصات این فایل مانند زیر در iframe نشان میدهد:
Hi little bee, How are you today?
Try to detect this evil 666 page t|
Have fun!
Cheers, malik
برای اینکه به بخش دیگری برویم با استفاده از bruteforce که از قبل اجرا شده اسم فایل عکسها پیدا میشود که همان عکسهای bWAPP است. با این کار میتوان URL را تغییر به دایرکتوری عکسها داد که مشابه آدرس زیر است:
bWAPP/images
زمانی که این آدرس را وارد میکنیم تمام عکسهای داخل این فایل نشان داده میشود. آدرس را به آدرس زیر تغییر میدهم که در حمله bruteforce بدست آوردیم. با این کار فایلهای داخل این دایرکتوری در iframe نشان داده میشود.
bWAPP/iframe.php?paramurl=bWAPP/images¶mWidth=250¶mHeight=250
می توان فایلهای دیگر غیر از فایلهای موجود در root وب را مشاهده نمود و برای اینکار سرور هدف باید به اشتباه پیکربندی شده باشد و دسترسی به مسیرهای دیگر محدود نشده باشد. اگر سیستم به اشتباه تنظیم شده باشد میتوان هر فایلی روی وب سرور مشاهده کرد.
برای این کار از burp suite استفاده میکنیم و با پروکسی نمودن آن برای ریلود iframe، میتوان پارامترهای مربوط به paramURL را تغییر داد و /etc/passwd را قرار میدهیم. در صورتیکه خطای سرور مشاهده شود میتواند به این معنا باشد که پیکربندی محدودیت دسترسی در سرور به درستی انجام شده است. حال دوباره شنود ترافیک در burp suite را فعال میکنیم و دوباره صفحه وب را بارگذاری میکنیم. در این بخش با بررسی درخواست get، می توان دید که تگ iframe بسته نشده است و وب سایت را آسیب پذیر مینماید. پس ابتدا این تگ را بسته و سپس میتوان هر نوع تگ html و یا java script بر اساس محدودیتهای وب سرور را اجرا نمود. این اقدامات با نام HTML Injection و یاiframe Injection شناخته میشوند.
برای جزئیات بیشتر از این نوع حمله به سایت owasp مراجعه شود.