استفاده از آسیب پذیری XSS و خواندن فایل

در این پست قصد داریم تا به نحوه شناسایی و اکسپلویت آسیب پذیری XSS یا Cross Site Scripting و نحوه خواندن فایل ها از طریق آن در یکی از اپلیکیشن ها بپردازیم.

اغلب افراد با آسیب پذیری XSS آشنا هستند و نحوه شناسایی و اکسپلویت آن را می دانند، ولی در این Write-up تست نفوذگر با استفاده از آسیب پذیری XSS در یک ایجاد کننده فایل PDF یا PDF Generator مربوط به یک برنامه اندروید، امکان خواندن فایل های موجود بر روی سیستم را پیدا می کند.

توضیحی در مورد هدف

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

این برنامه در واقع یک لانچر سفارشی را نصب کرده است که باعث می شود، کاربران نتوانند صفحه نمایش را تغییر داده یا به هر چیزی دسترسی داشته باشند.

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

شرح آسیب پذیری

کشف یک آسیب پذیری Cross site Scripting یا همان XSS در برنامه های تلفن همراه یا اپلیکیشن های دیگر مورد غیرمعمولی به حساب نمی آید. این نوع آسیب پذیری به صورت گسترده ای در این اپلیکیشن ها به چشم می خورد ولی آسیب پذیری کشف شده توسط تست نفوذگر در این برنامه، مربوط به خروجی یک PDF Generator می باشد.

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

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

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

اما بنا به برخی دلایل، این پیلود کار نکرده و همان صفحه قبلی نمایش داده شد.

در مرحله بعدی تست نفوذگر سعی می کند تا از تگ img استفاده نماید:

که این پیلود هم به خوبی کار نکرده و برنامه Crash می کند. ممکن است این موضوع به دلیل تگ img یا ویژگی onerror بوده باشد.

در ادامه به جای اینکه تست نفوذگر از پیلودهای پیچیده استفاده کند، از یک پیلود ساده استفاده می کند که در تصویر قابل مشاهده می باشد:

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

بوسیله این آسیب پذیری امکان خواندن فایل های داخلی در برنامه میسر می گردد.

منبع:

https://blog.dixitaditya.com/leveraging-xss-to-read-internal-files/

درباره نویسنده: احسان نیک آور

ممکن است دوست داشته باشید