امکان طراحی Html به صورت Dynamic از طریق یک باگ خطرناک در IE

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

البته اتخاذ چنین رویکردی از طرف کارمندان شرکت مذکور، برای اکثر متخصصان و اهالی فن (برنامه‌نویسان، توسعه دهندگان و اشخاصی که از دشواری تولید محصولات آگاه هستند) قابل درک است، اما در عین قابل درک بودن، به هیچ وجه قابل دفاع نیست. معمولا در چنین مواردی بزرگترین قشر آسیب‌دیدگان، کاربران عادی سیستم‌ها هستند.

در این میان، گاه مشکلات و نقص‌‌های امنیتی مورد بحث آنچنان مهم و بحرانی هستند که سوءاستفاده از آنها منجر به آلوده‌سازی هزاران کاربر در سراسر دنیا و وارد شدن صدمه جدی به سطح وسیعی از اطلاعات کاربران می‌گردد.
با نگاهی به نقص‌های امنیتی که در گذشته معرفی شده‌اند، می‌توان دریافت که آنهایی که به نوعی با Internet Explorer مرتبط بوده‌اند، مشکلات بزرگتری به وجود آورده‌اند. (به عنوان مثال مشکلات مربوط به تگهای Script و Embed که در گذشته با سوء استفاده از آنها، Cookie Hijacking صورت می‌گرفت)

در این مطلب هم بنده قصد دارم در مورد مشکل امنیتی خطرناکی در IE صحبت کنم که با استفاده از آن به راحتی می‌توان یک صفحه وب کاملا داینامیک تولید کرد. این مشکل مربوط به استفاده از کلمه کلیدی “about:” در url های IE است.
احتمالا تا کنون محتوای آدرسهای about:blank و about:tabs را مشاهده نموده‌اید. مشکل از اینجا ناشی می‌شود که در حالت خاصی می‌توان با استفاده از about: محتوای صفحه را به صورت داینامیک تغییر داده و حتی با استفاده از Jscript ها، اقدام به ارسال هر داده دلخواهی به وب نمود.

برای روشن شدن موضوع، این متن را در پنجره RUN اجرا نمایید:

about:bgcolor=#C5EBEB>

Hello my friend,

mshams.ir

اکنون به اجرای این متن بپ‍ردازید:
about:
action=”http://mail.php”>size=”40″ value=”Secret Data”>name=”abc” size=”40″ value=”***”>type=”submit” value=”Submit”>

همانطور که میبینید با استفاده از این باگ، هر صفحه‌ای با هر محتوایی را می‌توان به صورت داینامیک (OnTheFly) در IE درست کرد. (البته اندازه متن ورودی در پنجره RUN دارای محدودیتی است که به سادگی قابل عبور می‌باشد)

لازم به ذکر نیست که با استفاده از چنین باگی به سادگی می‌توان مشکلاتی جدی برای IE و امنیت کاربران به وجود آورد. شخصا می‌توانم کاربردهایی برای ایجاد BOF، اجرای انواع Script های غیر مجاز، ارسال اطلاعات با عبور از دیوار آتش، Spamming و … برای این باگ متصور شوم.

بخش جالب داستان اینجاست که این باگ در ویندوز ویستا هم که ادعای امنیت آن گوش کاربران را کر کرده، وجود داشته و با استفاده از آن به راحتی می‌توان Windows Defender، UAC،Windows Firewall و مابقی اهالی را حسابی شرمنده کرد.

پ.ن: از اینکه آیا این مشکل امنیتی در ویندوز هفت برطرف شده است یا خیر اطلاعی ندارم، اما با استناد به دو پاراگراف اول این نوشته، می‌توان فرض کرد که هنوز برطرف نشده است.
پ.ن: تا کنون با تعدادی از این قبیل مشکلات امنیتی که همچنان در ویندوز ویستا، خودنمایی می‌کنند روبرو شده‌ام که احتمالا در آینده مطالبی در مورد آنها خواهم نگاشت.

About محمد شمس

برنامه‌نویس، طراح انیمیشن و علاقمند به هوش مصنوعی

11 Comments

  1. IE به علت استفاده بیشتر، بیشتر هم در معرض دید است و بسیاری از اوقات برخورد با آن بیشتر سیاسی است. برای مثال به لیست تغییرات فایرفاکس در نگارش‌های اخیر آن دقت کنید. تماما مشکلات امنیتی است ولی نکته‌ی مهم اینجا است که نه مقاله‌ای در موردش منتشر می‌شود و نه در بوق و کرنا قرار می‌گیرد.

  2. توی ویندوز ۷ حل شده فکر کنم

  3. احتمال اینکه حل شده باشد خیلی کم است. اما اگر امتحان کردید به بنده هم اطلاع دهید.

  4. با نظر اولی که کاملاً موافقم!
    و در ویندوز ۷ حل شده این مشکل!

  5. با تستی که بنده انجام دادم در ویندوز ۷ فکر می کنم رفع شده باشد

    موفق و پیروز باشید

  6. ممنون که اطلاع دادید.

  7. در ویستا با IE8 این مشکل وجود ندارد

  8. من با ویندوز xp و IE8 تست کردم این مشکل وجود نداره! منطقی اینه که بیشتر به نسخه IE مربوط باشه تا به ویندوز.

  9. سلام

    بخشی از آن مربوط به IE است، اما بخش اصلی این مشکل، دقیقا مربوط به خود ویندوز است. چرا که با اجرای مستقیم url های مخرب در خود IE، مشکلی پیش نمی‌آید، اما اگر url ها با استفاده از ویندوز اجرا شوند، به دلیل شیوه پاس تگ پارامتر، این مشکل بروز میکند.

    ضمنا برای تست url ها باید یک خطی تایپ شوند، که به دلیل عرض کم وبلاگ، در اینجا در چند خط نمایان شده‌اند

  10. DevExpr:

    سلام. راستش ویندوز ویستای من به طور پیشفرض دارای IE7 است و این مشکل در آن همچنان باقی است.
    البته ممکن است در IE جدید این پارامتر محدود شده باشد، اما واضح است که مشکل اصلی که مربوط به پاس تگ پارامتر به IE است، همچنان وجود دارد.

    از آنجا که ویندوز ۷ و ویستا تفاوت چندانی با یکدیگر ندارند، احتمالا مشکل مربوطه در ویندوز ۷ همچنان وجود دارد، اما در IE آن برطرف شده.

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

  11. سلام،
    من هم اول کدها را یک خطی کردم و بعد اجرا کردم. در مورد مشکل پاس تگ پارامتر در ویندوز نوشته شما درست به نظر میاد.
    با تشکر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


× 5 = 10