• صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
 

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
0

هنوز هیچ محصولی خریداری نکرده اید.

وبلاگ

مرزبان بلاگ مقالات آموزشی باگ‌های پنهان دنیای باگ بانتی بخش پنجم

باگ‌های پنهان دنیای باگ بانتی بخش پنجم

مقالات آموزشی ، وبلاگ
ارسال شده توسط بهروز منصوری
1405/03/28
41 بازدید

در مقاله باگ‌های پنهان دنیای باگ بانتی بخش پنجم در مورد آسیب‌پذیری‌ Prototype Pollution صحبت میکنیم که از دید افراد مخفی مانده.

اگر تاکنون چنین Payloadای را دیده‌اید و نادیده گرفته‌اید:

{
  "__proto__": {
    "isAdmin": true
  }
}

احتمالاً یک آسیب‌پذیری واقعی با شدت P1 را از دست داده‌اید.

Prototype Pollution مستقیماً احراز هویت (Authentication) را دور نمی‌زند؛ بلکه منطق و داده‌هایی را آلوده می‌کند که برنامه به آن‌ها اعتماد دارد.

و زمانی که برنامه‌های مدرن جاوااسکریپتی به اشیای آلوده‌شده اعتماد کنند، مشکلات جدی آغاز می‌شود.

 

🧠 Prototype Pollution چیست؟ (بدون تئوری، فقط واقعیت)

Prototype Pollution زمانی رخ می‌دهد که:

  • یک برنامه جاوااسکریپتی اشیایی را که توسط کاربر کنترل می‌شوند با هم ادغام (Merge) کند.
  • کلیدهای خطرناک را فیلتر نکند.
  • و در نتیجه به مهاجم اجازه دهد Prototype اشیاء را تغییر دهد.

به زبان ساده:

شما شیء (Object) را تغییر نمی‌دهید؛ بلکه رفتار پیش‌فرض تمام اشیاء را تغییر می‌دهید.

 

🎯 چرا این آسیب‌پذیری اهمیت بالایی دارد؟

Prototype Pollution می‌تواند منجر به موارد زیر شود:

  • افزایش سطح دسترسی (Privilege Escalation)
  • دور زدن مکانیزم‌های احراز هویت
  • دستکاری منطق مجوزدهی (Authorization)
  • تخریب و آلودگی منطق ذخیره‌شده برنامه
  • و در برخی شرایط حتی اجرای کد از راه دور (RCE)

نکته نگران‌کننده اینجاست که:

  • برنامه همچنان «طبیعی» به نظر می‌رسد.
  • لاگ‌ها معمولاً رفتار مشکوکی نشان نمی‌دهند.
  • این آلودگی در بسیاری از مواقع حتی پس از استقرار نسخه‌های جدید نیز باقی می‌ماند.

به همین دلیل Prototype Pollution یکی از آسیب‌پذیری‌های محبوب در برنامه‌های خصوصی Bug Bounty محسوب می‌شود.

 

🐞 باگ‌های واقعی باگ‌بانتی که احتمالاً هرگز ندیده‌اید

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

 

📹 روند واقعی بهره‌برداری (PoC Mindset)

باگ‌های پنهان دنیای باگ بانتی بخش پنجم

مهاجم:

{
  "__proto__": {
    "isAdmin": true
  }
}

را ارسال می‌کند.

سپس سرور این شیء را به شکل ناامن Merge می‌کند:

Object.prototype.isAdmin = true;

و بعد در بخشی از برنامه چنین بررسی‌ای انجام می‌شود:

if (user.isAdmin)

در نتیجه:

💥 مهاجم به عنوان مدیر سیستم (Admin) شناخته می‌شود.

نکته مهم:

این باگ در یک Endpoint خاص باقی نمی‌ماند؛ بلکه به‌صورت پنهان در بخش‌های مختلف برنامه گسترش پیدا می‌کند.

 

🧪 کجا به دنبال Prototype Pollution بگردیم؟

این آسیب‌پذیری معمولاً در جاهایی ظاهر می‌شود که برنامه ورودی JSON دریافت کرده و اشیاء را با یکدیگر ادغام می‌کند.

بخش‌های پرریسک

  • APIهای به‌روزرسانی پروفایل
  • تنظیمات کاربری (Settings)
  • Preferences
  • فیلترها و پارامترهای جستجو
  • پنل‌های مدیریتی
  • APIهای Bulk Update

نمونه Endpointهای رایج:

POST /api/user/update
POST /settings
POST /profile
POST /preferences

اگر Endpoint ورودی JSON دریافت می‌کند، آن را تست کنید.

 

🧪 چگونه Prototype Pollution را پیدا کنیم؟

مرحله اول: شناسایی درخواست‌های JSON

به دنبال درخواست‌هایی باشید که هدر زیر را دارند:

Content-Type: application/json

مثال:

{
  "name": "test",
  "email": "test@test.com"
}

این نقطه ورود شماست.

مرحله دوم: تزریق Payloadهای Prototype Pollution

ابتدا از Payloadهای امن و مناسب برای تشخیص استفاده کنید:

Payloadهای پایه

{"__proto__":{"polluted":"yes"}}
{"constructor":{"prototype":{"polluted":"yes"}}}

نمونه استفاده:

{
  "name": "test",
  "__proto__": {
    "polluted": "yes"
  }
}

مرحله سوم: بررسی موفقیت آلودگی

اکنون رفتار برنامه را بررسی کنید.

به دنبال موارد زیر باشید:

  • نمایش مقدار polluted
  • ظاهر شدن ویژگی‌های غیرمنتظره
  • تغییر رفتار یا منطق برنامه

گاهی نتیجه بلافاصله دیده نمی‌شود و این کاملاً طبیعی است.

مرحله چهارم: فعال کردن بررسی‌های منطقی برنامه

این همان مرحله‌ای است که بسیاری از شکارچیان باگ در آن شکست می‌خورند.

Prototype Pollution معمولاً یک آسیب‌پذیری Second-Order است.

اقداماتی مانند موارد زیر را امتحان کنید:

  • بارگذاری مجدد پروفایل
  • ورود مجدد به حساب
  • دسترسی به Endpointهای مخصوص مدیران
  • اجرای فرایندهای مرتبط با Authorization

اگر برنامه چیزی شبیه به این را بررسی کند:

if (user.isAdmin)

و مقدار isAdmin آلوده شده باشد:

💥 دسترسی مدیریتی حاصل می‌شود.

 

🧰 ابزارهایی که واقعاً استفاده خواهید کرد

ابزارهای اصلی

  • Burp Suite
  • Repeater
  • Proxy
  • ابزارهای توسعه‌دهنده مرورگر (DevTools)
  • تست دستی

ابزارهای اختیاری

  • ppmap
  • دانش Node.js (یک مزیت بزرگ)

اسکنرها معمولاً پاسخ دقیق و قابل اعتمادی برای این نوع آسیب‌پذیری ارائه نمی‌کنند.

 

🧪 Payloadهایی که واقعاً ارزشمند هستند

افزایش سطح دسترسی

{"__proto__":{"isAdmin":true}}

تزریق نقش (Role Injection)

{"constructor":{"prototype":{"role":"admin"}}}

دستکاری منطق برنامه

{"__proto__":{"canDelete":true}}

تشخیص آلودگی

{"__proto__":{"polluted":"yes"}}

همیشه Payloadها را با منطق واقعی برنامه تطبیق دهید.

 

🚩 نشانه‌هایی که نشان می‌دهند به یک باگ واقعی نزدیک شده‌اید

به موارد زیر توجه کنید:

  • ظاهر شدن ویژگی‌های جدید و غیرمنتظره
  • نمایش بخش‌های مدیریتی در رابط کاربری
  • دسترسی به قابلیت‌هایی که نباید در اختیار شما باشند
  • رفتارهای نامنظم در سیستم مجوزدهی
  • ماندگاری تغییرات بین درخواست‌های مختلف

Prototype Pollution به صبر و بررسی دقیق پاداش می‌دهد.

 

🧨 چگونه این آسیب‌پذیری را به یک P1 تبدیل کنیم؟

Prototype Pollution به‌تنهایی ممکن است شدت پایینی دریافت کند.

اما:

Prototype Pollution + Logic Flaw = 🔥

نمونه‌ها:

  • دور زدن محدودیت isAdmin
  • تنظیم canApprove=true
  • تغییر نقش به superuser

برای گزارش مؤثر باید سه مورد را اثبات کنید:

  1. وقوع آلودگی Prototype
  2. تأثیر واقعی آن
  3. پیامد تجاری (Business Impact)

 

📝 نمونه عنوان و شرح گزارش

عنوان

Prototype Pollution Allows Privilege Escalation via Unsafe Object Merging

تأثیر

مهاجم می‌تواند با ارسال Payloadهای JSON دستکاری‌شده، Prototype اشیای جاوااسکریپتی را آلوده کند.

این موضوع امکان تغییر ویژگی‌های مرتبط با مجوزدهی را فراهم کرده و در نهایت به افزایش سطح دسترسی و دسترسی غیرمجاز به قابلیت‌های محدود منجر می‌شود.

اهمیت

  • نقض مکانیزم‌های Authorization
  • تأثیرگذاری بر چندین Endpoint
  • دشواری در شناسایی در محیط Production

 

🧠 چرا بیشتر شکارچیان باگ این آسیب‌پذیری را از دست می‌دهند؟

زیرا:

  • معمولاً بلافاصله اثر خود را نشان نمی‌دهد.
  • پیام موفقیت واضحی وجود ندارد.
  • نیازمند درک عمیق از ساختار داخلی جاوااسکریپت است.
  • اغلب باید با یک ضعف منطقی دیگر زنجیره شود.

بسیاری از محققان امنیتی خیلی زود دست از بررسی می‌کشند.

 

🚀 بعد از خواندن این مطلب چه کاری انجام دهید؟

هر زمان با موارد زیر مواجه شدید:

  • APIهای مبتنی بر JSON
  • ادغام اشیاء (Object Merging)
  • تنظیمات قابل کنترل توسط کاربر

این دو کار را انجام دهید:

  1. تست Prototype Pollution
  2. بررسی منطق‌های Authorization و Logic Checks

اغلب تأثیر واقعی دقیقاً در همین نقطه پنهان شده است.

 

🐾 قسمت بعدی این مجموعه

JWT Algorithm Confusion

اینکه چگونه تنها با تغییر یک Header می‌توان توکن‌های ظاهراً امن را به هویت‌های جعلی تبدیل کرد.

 

با من همراه باشید

برچسب ها: Authenticationbug bountyPrivilege EscalationPrototype PollutionSecond-Orderآموزش هکامنیت سایتباگ بانتیبهروز منصوریتست نفوذدوره آموزش هکهک سایتهک و امنیت

قدیمی تر باگ‌های پنهان دنیای باگ بانتی بخش چهارم
جدیدتر آسیب‌پذیری sqli در فروشگاه اپل آیدی

محصولات فروش ویژه
  • چطور با گزارش خوب در سایت‌های داخلی کسب درآمد کنیم؟
    کسب درآمد از طریق گزارش باگ در سایت‌های داخلی
  • دوره درک عمیق آسیب‌پذیری
    درک عمیق آسیب‌پذیری
  • مینی دوره مهندسی اجتماعی
    مینی دوره مهندسی اجتماعی
  • گزارش نویسی حرفه ای در باگ هانتینگ
    گزارش نویسی حرفه‌ای در Bug Hunting
دسته‌ها
  • رایتاپ
  • غیر رسمی
  • مقالات آموزشی
  • وبلاگ
  • ویدیوهای آموزشی
درباره ما

هدف از راه‌اندازی این سایت تلاش در جهت ورود شما به بازار کار است.افراد زیادی را میشناسیم که مشغول کارهای کارمندی هستند، شاید حتی پول نسبتا خوبی هم به دست میاورند ولی از کارشان لذت نمیبرند.

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

دسترسی سریع
  • دوره منتورینگ vip بهروز منصوری
  • کلوپ امنیت 1
  • کلوپ امنیت 2
  • کلوپ امنیت پیشرفته
  • دوره تست نفوذ api
  • دوره جامع اوسینت
  • دوره امنیت وردپرس
  • دوره متخصص pentest
  • رایتاپخونه
  • ارتباط با ما
  • تماس: 09126216410
  • ایمیل: mr.mansoori@yahoo.com

تمامی حقوق برای مرزبان محفوظ می باشد.

طراحی توسط مرزبان

فرم درخواست مشاوره

جستجو

جستجو با زدن Enter و بستن با زدن ESC