مبحث یکم : مقدمه و تاریخچه
مبحث دوم: مراحل نفوذ کردن / جلوگیری از نفوذ
مبحث سوم: حملات شبکه ای
مبحث چهارم - کار عملی
مبحث پنجم - DHCP
مبحث ششم - وب و حملات مطرح در آن
مبحث هفتم - حملات DoS
مبحث هشتم - سیستم عامل
مبحث نهم - مهندسی اجتماعی
مبحث دهم - Vulnerability (آسیب پذیری)

مرور

مرور: در جلسه قبل بر روی یک وب سایت XSS  را اجرا کردیم و کوکی‌های آن را تغییر دادیم. کاری که انجام شد این بود که با تغییر کوکی، نام کاربری را به admin (یعنی قسمت username در کوکی را به admin) تغییر و توانستیم به عنوان admin به وب سایت دسترسی پیدا کنیم. در این جلسه می بینیم که این سایت کار را سخت تر کرده است. مثلاً رمز MD5 گذاشته است و اصلاً قابل پیش بینی نیست که ساختار کوکی چه چیزی است. می‌خواهیم بررسی کنیم که آیا هنوز هم می‌توان با تغییر کوکی (Cookie Manipulation) کاری انجام داد یا خیر.

از جملاتی که در بحث وب گفته شد، کدام بر روی این سایت با ویژگی گفته شده جواب می دهد؟ در حال حاضر مشکلاتی که داریم این است که کوکی را نمی‌توانیم عوض کنیم (به علت رمزنگاری). البته دیده می شود که در سایت‌ها مواردی زیادی را در کوکی وارد می کنند که این‌ها باعث می شوند دیگر کوکی ساده نباشد و برای کاربر قابل حدس نباشد. راه حل آن این است که از حملات XSS برای گرفتن کوکی admin استفاده می شود. بدین ترتیب دیگر با ساختار داخل کوکی کاری نداریم. کوکی admin که به دست آمد دقیقاً همان مقادیر را در کوکی خود Set کرده و یک refresh زده و باعث می شود admin شویم.

در اسکریپتی که جلسه قبل نوشته شده (برای باز کردن پنجره و رفتن به URL مربوطه و ارسال کوکی) اگر که window.close () (بستن پنجره) را ته اسکریپت می نوشتیم باعث می شد که پنجره جاری که مثلاً admin در حال مشاهده آن می باشد (و کد XSS مربوط به اسکریپت در آن قرار دارد) بسته شود که باعث می شود admin متوجه بروز حمله شود.

در لینوکس برای هر چیزی مثل توابع، System Call ها (فراخوانی های سیستمی)، فایل های config، پروتکل ها و …، manual وجود دارد که به طور مناسب به توضیح موارد یاد شده می‌پردازد. یکی از این manual ها که backtrack هم قرار داده شده است، manual مربوط به fopen است، یعنی می توان در ترمینال backtrack نوشت man fopen. خروجی ()fopen یک مشخصه فایل است که دیگر با استفاده از آن می توان با فایل مربوطه کار کرد.

(“$f=fopen (“tmp/cookies” , “a

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

;(“fwrite ($f , “IP : {$_SERVER[‘REMOTE_ADDR’]} REFFERE: {$_SERVER [‘HTTP_REFERRER]} Cookie:{$_GET[‘cook’]\n

دستور fwrite بالا باعث می شود تا اطلاعات در فایلی که مشخصه‌ی آن $f است ریخته شود. اطلاعاتی که در فایل نوشته می شود در پارامتر دوم تابع ()fwrite آمده است (از شروع دابل کوتیشن تا انتهای دابل کوتیشن). اول از همه در فایل نوشته می شودIP: . فرض می کنیم که XSS که باعث شده است Page بالا بر روی آدرس 192.168.100.191 اعمال شده است. این آدرسی است که XSS بر روی آن run شده است. هم چنین فرض می کنیم محتوای کوکی هم برابر است با u=admin , pass= 123

متغییر $_SERVER [‘HTTP_REFERRER] در بردارنده ی نام صفحه ای است که از آن جا به سایت نفوذگر Redirect شده است. مثلاً اگر XSS خود را در صفحه ای به نام manage.php قرار داده اید (که admin هم با دیدن آن صفحه موجب اجرا شدن XSS می شود) مقدار این متغیر (ارجاع دهنده) می شود صفحه ای که در حال دیده شدن بوده است. (مثل manage.php).

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

IP: 192.168.100.191

Reffer: manage.php

Cookie: U=admin, pass=123

        دستور زیرچه کاری انجام می دهد؟ (به زبان PHP است)

“<Print “<script> window.close ();</script

 این دستور باعث می شود که اسکریپت  window.close ()در صفحه اجرا شده و منجر به بسته شدن این صفحه می‌شود.

زمانی که کد document.location اجرا می شود،  locationجاری عوض می شود. اگر از کد html استفاده کنید خیلی خوب است زیرا مستقل از نوع browser، این که Javascript را پشتیبانی می کند یا خیر و … کد html اجرا خواهد شد مثل همان تگ متا (meta)که قبلاً برای redirect استفاده کرده بودیم)

اسکرول به بالا