Vulnerability (آسیب پذیری): باگی (bug) که می تواند منجر به نفوذ در سیستم شود. Bug یک خطای نرم افراز است (یک خطای بالقوه).
برای استفاده از Vulnerability، exploit مینویسند (مثالی از آن را در جلسات قبل دیدیم که منجر به buffer over flow می شد). خیلی از آسیبپذیریهای مربوط به آسیبپذیری سرریز بافر (buffer over flow) هستند (یعنی یک بافری (فضایی) داریم و مقدار کاربر را بررسی نمیکنیم مانند input validation که اگر انجام نمی دادیم سیستم دچار مشکل می شد). آسیبپذیری دیگر که با آن آشنا شدیم format string بود. این آسیبپذیری در بهترین حالت منجر به این می شود که سیستم crash کند در بدترین حالت هم منجر به دسترسی کامل به سیستم هدف می شود.
از دستور ping میتوان برای ارسال داده هم می توان استفاده کرد. یعنی داده مورد نظر خود را در payload بسته ICMP قرار داد. یعنی config فایروال به گونه ای است که جلوی خیلی از موارد گرفته شده می شود اما ممکن است بسته ping اجازه عبور را داشته باشد. حال اگر در یک سیستمی ping باز بود از آن می توان برای ارسال داده استفاده کرد. البته با استفاده از برنامه نویسی سوکت (socket programming) بسته ICMP را به گونهای تغییر داد که داده مورد نظر ما را منتقل کند (مثلاً بسته های یک پروتکل دیگر را در آن قرار داد encapsulate کرد). این روش میتواند یک روش bypass فایروالی باشد که بسته ping در آن اجازه عبور دارد و یا روش دیگر استفاده از آسیبپذیری های احتمالی بر روی خود نرم افزار فایروال است.