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

کار با web goat

goat برنامه ای است که OWASP (open web application security project) برای تست حملات در اختیار قرار می دهد.

فایل Web Goat 5.2 را دانلود کنید. پوشه ی web goat 5.2 را باز کنید. در آن دو فایل .bat وجود دارند. فایل web goat.bat را اجرا کنید. یک پنجره cmd باز می شود (در ویندوز این کارها را انجام دهید) با این پنجره که باز شده است کاری نداریم. یک مرورگر باز کنید (مثلاً IE). در کنار فایل web goat.bat یک فایل readme. txt است. در این فایل توضیحاتی درباره ی web goat داده است که مثلاً اگر آن را run کنید سیستم شما آسیب پذیر می شود (تا زمانی که در حال اجرا است) و غیره. در قسمتی از این فایل گفته شده است برای اینکه login کنید به آدرس http://loadhost./WebGoat/attack بروید (دقیقاً همین آدرس. G و W بزرگ است). در مرورگر به این آدرس می رویم. پنجره ای باز می شود که نام کاربری و کلمه عبور می خواهد. هر دو را guest وارد کنید. صفحه ای باز می شود.

شکل 2

اگر IIS روی سیستم شما run است با 8080، web goat را باز کنید (http://loadhost,8080/WebGoat/attack). اگر Apache در حال اجرا است آن را نیز stop کنید.

گزینه Start WebGoat را بزنید (شکل 2).

می خواهیم حملات XSS قسمت 1 را انجام دهیم. در سمت چپ پنجره انواع حملات وجود دارد. از این پنجره گزینه Cross-site scripting(XSS) را انتخاب می کنیم و سپس گزینه phishing with XSS را کلیک کنید. در پنجره وسط یک جستجو قرار داده شده است که روی آن XSS انجام می شود. می توانید یک عبارت را در آن جستجو کنید (مثلاً abcd را جستجو کنید) که مشکل هم از این جاست که در پایین عبارت مورد جستجو را نمایش می دهد. در فیلد جستجو یک اسکریپت می توان وارد کرد. غالباً فقط برای اینکه بتوان فهمید که XSS جواب می دهد یا نه یک دستور ساده می نویسند مثل:

<script>alert(‘XSS’); </script>

که پس از وارد کردن آن و زدن دکمه search، کد مربوطه اجرا می شود (شکل 3).

شکل 3

در مرحله بعد سعی می کنیم این اسکریپت را قوی تر کنیم. می خواهیم کوکی نشست جاری را بیرون بکشیم. دستور زیر را وارد کنید.

<script> alert (document.cookie); </script>

نتیجه را در شکل 4 می بینید که یک session ID است. حالا اگر شما در کوکی سیستم خود این مقدار را set کنید می شوید مانند کاربر ایجاد کننده آن.

شکل 4

توجه: هر سایتی فقط کوکی های خودش را می تواند ببیند. مثلاً google.com نمی تواند به سیستم من درخواست دهد که کوکی yahoo را به من بده. نحوه ی ذخیره شدن کوکی ها با اسم سایت است (مثلاً با نام www.googlel.com یک فایل text ایجاد می شود).

نفوذگر با استفاده از یک کد (در حمله XSS) می تواند کوکی های یک کاربر را بدزد و از آنها استفاده کند (برداشتن کوکی های کاربران نیز این گونه می تواند باشد که کد حمله XSS، کوکی کاربر را گرفته و مثلاً به مکانی که نفوذگر می داند برای نفوذگر ارسال کند.

تمرین دوم- stage 2 را می خواهیم انجام دهیم (از پنجره سمت چپ آن را انتخاب کنید.) این مرحله می گوید: با کاربر Tom، login کنید. یک XSS را در فیلد street، set کنید. پسورد userها نام کوچکشان است. از لیست Tom Cat را انتخاب کنید. پسورد را هم tom قرار دهید. Login انجام می شود. سپس دکمه search staff را می زنیم و به دنبال tom می گردیم. Tom پیدا می شود (و یا از لیست سمت چپ Tom را انتخاب و گزینه view profile را می زنیم).

نکته: در Facebook، yahoo، XSS می تواند وجود داشته باشد. سایت که بزرگ می شود XSS هم پیدا می شود. مثلاً ممکن است یک XSS وجود داشته باشد که یک ویندوزی را باز می کند و سریع می بندد. اصلاً کاربر متوجه هم نمی شود و یا یک advertisement می آید در صورتی که ممکن است یک XSS باشد و این XSS، کوکی های شما را می گیرد و می فرستد به سرورهای نفوذگر. آنجا نیز وقتی کوکی دریافت شود login را خودش انجام می دهد. ایمیل شما را دانلود می کند و … هر چه سایت ساده تر (simplicity)، امن تر.

حال بر روی Edit Profile کلیک می کنیم. گفته شده بود که در فیلد street، XSS اش را قرار دهید. بعد logout می کنیم و با Jerry، login می کنیم (یعنی ما اطلاعات Jerry را طوری تغییر داده ایم که هر زمان که Jerry، login کند، XSS برایش اجرا می شود. حالا این XSS می تواند باعث redirect شدن به صفحه دیگر؛ گرفتن کوکی و یا …. شود. آن را انجام دهید (می توان فرض کرد Jerry، admin سایت است).

حال اگر با کاربر Jerry وارد شوید و بخواهید اطلاعات کاربر tom را ببینید (Tom را از لیست انتخاب کنید و گزینه view profile را بزنید) می بینید که کد شما اجرا می شود (این کد می تواند به طور ساده همان نمایش پیغام Hi باشد).

توجه: برخی از مرورگرها خودشان یک Protection دارند مثلاً chrome، حمله بالا را detect می کند. برای مثال وقتی ما مقدار فیلد را یک کد اسکریپت داده ایم chrome و یا مرورگر دیگر می توانند پی ببرند که یک XSS است. و ممکن است یک سری add on برای جلوگیری یا پیشگیری وجود داشته باشند. Chrome به طور پیش فرض نه تنها XSS بلکه خیلی حملات دیگر را نیز detect می کند.

برای جلوگیری از حملات XSS چه راهی وجود دارد؟ فعال نشدن اسکریپت ها، استفاده از مرورگر خوب، بستن یک سری از کاراکترها و یا نمایش شبیه سازی شده زمانی که اسکریپت اجرا می شود. با این کار کاربر بتواند ببیند که بعد از اجرای اسکریپت چه اتفاقی می افتد. زمانی که web/internet security را همراه آنتی ویروس نصب کنید جلوی این حملات شاید گرفته شود.

نکته: code injection محدود به XSS نمی شود. یعنی هر کدی می توان در سایت inject کرد. یک نوع حملات دیگر CSRF (cross site request forgery)

تحقیق: درباره ی حمله SSRF تحقیق کنید؟

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