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

تمرین: وب سایت xssed.com را مشاهده کنید.

برخی از سایت ها وجود دارند که بر روی یک سری دیگر از سایت ها حملات XSS را انجام می دهند. یعنی دیتابیسی از سایت هایی که حمله XSS روی آنها انجام شدنی است می سازند و نقاطی از آن سایت ها که در آنها XSS انجام می شود را مشخص می کنند. بعد یک ابزار می سازند که کار حمله XSS را انجام می دهد و این ابزار را به شما (کسی که نیاز به هک یک سایت دارد) می دهند.

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

ابزار hack-bar یک add-on در firefox است که برای injection، XSS و … می تواند مورد استفاده قرار گیرد.

در backtrack نیز یک مرورگر قرار داده شده است که این مرورگر بر پایه firefox است که یک سری امکانات را برای نفوذ در اختیار قرار می دهد (مثل cookie editor، sql injection، foxy proxy)

غالباً وقتی آسیب پذیری در یک سیستم (نرم افزار، پورتال و ….) بوجود می آید، سازنده آن، آن را patch می کند. پس update بودن و config درست تا حدی جلوی حملات را می گیرد.

فقط درج یک کد (XSS) کافی نیست بلکه باید شرایط اجرای آن کد هم فراهم شود. مثلاً client باید از آن صفحه که کد در آن قرار دارد دیدن کند (وابسته است به client). پس دقت کنید حملات XSS حمله ای نیست که مستقیماً علیه سرور بتواند انجام شود با استفاده از سرور و غالباً علیه clientها انجام می شود. درست است که ممکن است در اثر حمله به clientها، client مثلاً یک فایل به سرور ارسال کند که در نتیجه آن سرور دچار DDoS شود اما حملات XSS مستقیماً علیه سرور نیست. بلکه از طریق سرور علیه clientها و البته می تواند بعد از آلودگی client، علیه فرد دیگر حمله انجام شود.

در لینوکس برای آن که به کارت شبکه یک IP به طوردستی بدهیم از دستور ifconfig (interface congif) است.

دستور ifconfig اینترفیس های شما را لیست می کند.

برای sent کردن IP دستور زیر را وارد کنید (بسته به اینترفیسی که به آن IP می دهید می توانید به جای eth0 نام دیگری قرار دهید.)

ifconfig eth0 192.168.100.101

این دستور IP بالا را به اینترفیس eth0 می دهد.

با دستور زیر می توان default gateway را set کرد.

route add defaultgw 192.168.100.1

برای set شدن DNS هم (در لینوکس)

echo “name server 81.31.160.34” > /etc/resolv.conf

به جای IP بالا از IP 4.2.2.4 یا 217.218.127.127 می توان استفاده کرد.

فایل resolv.conf فایلی است (در سیستم های مبتنی بر لینوکس) که اطلاعات name server در آن قرار گرفته است. دستور بالا عبارت داخل کوتیشین را در فایل resolv.conf می ریزد. می توان به هر تعداد در آن فایل name server قرار داد. اگر از یک علامت (>) استفاده شود محتویات قبلی را پاک کرده و محتوای جدید را وارد می کند اما اگر از (>>) استفاده کنیم محتوای جدید به محتوای قبلی اضافه می شود.

دستور mtr، دستوری است که packet loss را نشان می دهد.

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

زبان برنامه ای که برای کد XSS استفاده می شود می تواند هر زبان اسکریپت نویسی باشد که مرورگر (browser) از آن پشتیبانی می کند. مثلاً یک مرورگر text mode، ممکن است Java script، VB script و … را نفهمد پس کدهای نوشته شده به این دو زبان هم در آن جواب نمی دهد.

دقت کنید کد را باید در فیلدی inject کنید که فضای کافی در آن (در جدول پایگاه داده اش) وجود داشته باشد. مثلاً فیلد آدرس در یک سایت ممکن است فضای خوبی را در اختیار شما قرار دهد.

مجدداً این نکته بیان می شود که دقت کنید کدی که در یک سایت وارد می کنید نظم و ساختار کدهای برنامه و یا queryهای دیتابیس را بر هم نریزد مثلاً استفاده از کوتیشین در کد ممکن است منجر شود به اینکه نظم ساختاری query خراب شود و error دریافت کنید و کد شما در دیتابیس ذخیره نشود.

اسکریپت windows.close(); موجب بسته شدن پنجره مرورگر می شود (البته همراه با گرفتن تأییدیه از کاربر).

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