آسیب پذیری Stored XSS در یک وب سایت E-commerce

آسیب پذیری Stored XSS در یکی از برنامه های باگ بانتی

با توجه به اینکه تست نفوذگر اجازه افشای اطلاعات در خصوص گزارش ارائه شده به شرکت هدف را ندارد، نام هدف در این Write-up قرار داده نشده است.

توضیح آسیب پذیری Stored XSS

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

با توجه به اهمیت آسیب پذیری XSS، این آسیب پذیری در OWASP Top 10 نیز آورده شده است.

در این Write-up، به نحوه شناسایی آسیب پذِیری Stored XSS در یکی از برنامه های باگ بانتی که مربوط به وب سایت E-commerce بزرگی هم می باشد، پرداخته شده است.

شناسایی آسیب پذیری Stored XSS

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

با توجه به موضوع مطرح شده، تست نفوذگر تصمیم می گیرد تا Payload های زیر را در بخش های مستعد آسیب پذیری، بررسی نماید:

تست نفوذگر اغلب به XSS Payload های بالا بسنده می کند، زیرا Payload های زیادی برای آسیب پذیری XSS وجود دارد و تست تمامی این Payload ها امکان پذیر نمی باشد.

پس از بررسی های انجام شده، تست نفوذگر ابتدا آسیب پذیری HTML Injection را شناسایی می نماید که این موضوع به معنای اجرای تگ های HTML می باشد.

توجه داشته باشید که اگر یک وب اپلیکیشن، تگ های HTML را اجرا کند، احتمالا در ادامه امکان اجرای اسکریپت و تبدیل آن به XSS هم وجود دارد ولی این موضوع همواره صدق نخواهد کرد.

در این هدف نیز متاسفانه کد اسکریپت تست نفوذگر اجرا نمی شود.

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

1 – یک فایروال تحت وب یا WAF در این وب سایت پیاده سازی شده است.
2- WAF به کلماتی مانند Javascript و alert حساس می باشد.
3- وب سایت از Markdown برای Parse نمودن ورودی های کاربر استفاده می کند.

نکته: Markdown، یک زبان نشانه گذاری می باشد که از آن می توان برای اضافه نمودن عناصر قالب بندی به مستندات متنی استفاده نمود.

با توجه به اینکه Markdown، امکانات شخصی سازی بالایی را برای کاربران فراهم می آورد، امکان بروز misconfiguration در آن وجود دارد. به همین دلیل تست نفوذگر تصمیم می کیرد تا در ادامه به این بخش بپردازد و Payload های خود را در این بخش تست نماید.

با توجه به اینکه یکی از رایج ترین روش های Bypass در آسیب پذیری XSS و اجرای Payload ها، استفاده از کدگذاری Unicode می باشد، لذا تست نفوذگر Payload زیر را تست می نماید:

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

با توجه به شناسایی این آسیب پذیری، تست نفوذگر، آن را گزارش نموده و پس از تایید، مبلغ 400 دلار به عنوان جایزه برای وی در نظر گرفته می شود.

منبع:

emanuel-beni.medium.com/stored-xss-on-product-description-high-400-2f078fd70fd2

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

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