نکات کلیدی
1. درک اصول باگ باونتی و تعاملات وب
آسیبپذیری، ضعفی در یک برنامه است که به یک فرد مخرب اجازه میدهد تا اقداماتی غیرمجاز انجام دهد یا به اطلاعاتی دسترسی پیدا کند که نباید به آنها دسترسی داشته باشد.
تعریف آسیبپذیری. آسیبپذیری، نقصی در یک برنامه است که اجازه میدهد اقداماتی غیرمجاز یا دسترسی به اطلاعات محدود شده انجام شود. این نقصها میتوانند ناشی از استفادههای عمدی یا غیرعمدی از برنامه باشند. باگ باونتیها جوایزی هستند که شرکتها به هکرهای اخلاقی که بهطور مسئولانه این آسیبپذیریها را کشف و گزارش میدهند، ارائه میدهند.
مدل کلاینت-سرور. اینترنت از طریق شبکهای از کامپیوترها که از طریق بستهها با یکدیگر ارتباط برقرار میکنند، عمل میکند. کلاینتها درخواستها را آغاز میکنند و سرورها پاسخ میدهند. درک این رابطه کلاینت-سرور برای شناسایی آسیبپذیریهای بالقوه بسیار مهم است.
بازدید از وبسایت. زمانی که شما یک URL را وارد میکنید، مرورگر شما نام دامنه را استخراج کرده، آن را با استفاده از DNS به یک آدرس IP تبدیل میکند، یک اتصال TCP برقرار میکند، یک درخواست HTTP ارسال میکند، پاسخ سرور را دریافت میکند و پاسخ را نمایش میدهد. درخواستهای HTTP از روشهایی مانند GET، POST، PUT و DELETE برای تعامل با سرورها استفاده میکنند.
2. تسلط بر ریدایرکتهای باز برای بهرهبرداری از اعتماد
ریدایرکتهای باز از اعتماد یک دامنه خاص بهرهبرداری میکنند تا اهداف را به یک وبسایت مخرب جذب کنند.
آسیبپذیری ریدایرکت. ریدایرکتهای باز زمانی رخ میدهند که یک وبسایت کاربران را بر اساس ورودیهای غیرقابل اعتماد به یک سایت دیگر هدایت میکند، معمولاً از طریق پارامترهای URL. مهاجمان میتوانند این ریدایرکتها را دستکاری کنند تا کاربران را به سایتهای مخرب هدایت کنند، که ممکن است برای فیشینگ یا توزیع بدافزار باشد.
روشهای بهرهبرداری. مهاجمان میتوانند از طریق پارامترهای URL، تگهای refresh HTML <meta>
یا ویژگی window.location
جاوااسکریپت از ریدایرکتهای باز بهرهبرداری کنند. شناسایی پارامترهایی مانند url=
, redirect=
, یا next=
کلید یافتن این آسیبپذیریها است.
استراتژیهای کاهش. وبسایتها میتوانند با تأیید URLهای ریدایرکت در برابر یک لیست سفید از دامنههای معتبر یا با استفاده از صفحات میانجی که قبل از ریدایرکت کردن کاربران به سایتهای خارجی هشدار میدهند، ریدایرکتهای باز را کاهش دهند. مثال ریدایرکت میانجی HackerOne اهمیت شناسایی ابزارها و خدماتی را که وبسایتها در حین جستجوی آسیبپذیریها استفاده میکنند، نشان میدهد.
3. استفاده از آلودگی پارامتر HTTP برای رفتار غیرمنتظره
آلودگی پارامتر HTTP (HPP) فرآیند دستکاری نحوه برخورد یک وبسایت با پارامترهایی است که در طول درخواستهای HTTP دریافت میکند.
تعریف HPP. آلودگی پارامتر HTTP (HPP) شامل تزریق پارامترهای اضافی به یک درخواست HTTP برای دستکاری نحوه پردازش آنها توسط وبسایت است. این میتواند در سمت سرور اتفاق بیفتد و بر نحوه مدیریت دادهها توسط سرور تأثیر بگذارد یا در سمت کلاینت، بر رفتار مرورگر کاربر تأثیر بگذارد.
HPP در سمت سرور. HPP در سمت سرور از نحوه استفاده کد سمت سرور از مقادیر منتقل شده به عنوان پارامترها بهرهبرداری میکند. فناوریهای مختلف سرور به طور متفاوتی با پارامترهای متعدد با همان نام برخورد میکنند، که آزمایش را ضروری میسازد.
HPP در سمت کلاینت. HPP در سمت کلاینت به مهاجمان اجازه میدهد تا پارامترهای اضافی را به یک URL تزریق کنند تا تأثیراتی در سمت کاربر ایجاد کنند. این میتواند شامل دستکاری نحوه نمایش توابع جاوااسکریپت یا ویژگیهای HTML باشد که ممکن است منجر به XSS یا سایر آسیبپذیریهای سمت کلاینت شود. مثال دکمههای اشتراکگذاری اجتماعی HackerOne نشان میدهد که چگونه وبسایتهایی که محتوا را میپذیرند و با سایر خدمات وب ارتباط برقرار میکنند، میتوانند در برابر HPP آسیبپذیر باشند.
4. جلوگیری از جعل درخواست بینسایتی با درک احراز هویت
حمله جعل درخواست بینسایتی (CSRF) زمانی رخ میدهد که یک مهاجم میتواند مرورگر یک هدف را وادار کند تا یک درخواست HTTP به وبسایت دیگری ارسال کند.
تعریف CSRF. جعل درخواست بینسایتی (CSRF) زمانی رخ میدهد که یک مهاجم مرورگر یک کاربر را وادار میکند تا یک درخواست HTTP مخرب به وبسایتی ارسال کند که کاربر در آن احراز هویت شده است، بدون اینکه کاربر از این موضوع آگاه باشد یا رضایت دهد. این میتواند منجر به انجام اقداماتی غیرمجاز بر روی حساب کاربر شود.
روشهای احراز هویت. وبسایتها از کوکیها یا احراز هویت پایه برای ذخیره احراز هویت کاربر استفاده میکنند. کوکیها فایلهای کوچکی هستند که در مرورگر کاربر ذخیره میشوند، در حالی که احراز هویت پایه شامل ارسال نام کاربری و رمز عبور کدگذاری شده به صورت base64 در هدر درخواست HTTP است.
استراتژیهای دفاع. حملات CSRF میتوانند با استفاده از توکنهای CSRF که مقادیر منحصر به فرد و غیرقابل پیشبینی هستند و در درخواستهای HTTP برای تأیید اصالت آنها گنجانده میشوند، کاهش یابند. سایر دفاعها شامل استفاده از ویژگی کوکی SameSite و بررسی هدر Origin یا Referer است. مثال قطع ارتباط توییتر Shopify اهمیت جستجوی درخواستهای HTTP که اقداماتی را در سرور از طریق یک درخواست GET انجام میدهند، نشان میدهد.
5. شناسایی و بهرهبرداری از تکنیکهای تزریق HTML و جعل محتوا
تزریق HTML و جعل محتوا حملاتی هستند که به یک کاربر مخرب اجازه میدهند تا محتوا را به صفحات وب یک سایت تزریق کند.
تزریق HTML. تزریق HTML به مهاجمان اجازه میدهد تا عناصر HTML دلخواه را به یک وبسایت تزریق کنند، که ممکن است منجر به تخریب سایت یا ایجاد فرمهای فیشینگ شود. این مشابه XSS است، اما شامل اجرای جاوااسکریپت نمیشود.
جعل محتوا. جعل محتوا شامل تزریق محتوای متنی به یک وبسایت است که میتواند برای گمراه کردن کاربران یا انتشار اطلاعات نادرست استفاده شود. این معمولاً کمتر جدی از تزریق HTML است زیرا اجازه ایجاد عناصر HTML دلخواه را نمیدهد.
استراتژیهای کاهش. وبسایتها میتوانند با بهدرستی پاکسازی ورودیهای کاربر، کدگذاری کاراکترهای خاص و پیادهسازی کدگذاری خروجی سختگیرانه، تزریق HTML و جعل محتوا را کاهش دهند. مثال تزریق نظر Coinbase نشان میدهد که چگونه کدگذاری کاراکترها میتواند برای دور زدن پاکسازی HTML استفاده شود.
6. بهرهبرداری از تزریق بازگشت خط و تغذیه برای دستکاری HTTP
آسیبپذیری تزریق بازگشت خط و تغذیه (CRLF) زمانی رخ میدهد که یک برنامه ورودی کاربر را به درستی پاکسازی نکند یا بهطور نادرست این کار را انجام دهد.
تعریف تزریق CRLF. تزریق بازگشت خط و تغذیه (CRLF) زمانی رخ میدهد که یک مهاجم کاراکترهای کدگذاری شده (%0D و %0A) را به پیامهای HTTP تزریق کند، که به آنها اجازه میدهد هدرها را دستکاری کرده و احتمالاً حملات مخفیسازی درخواست HTTP یا تقسیم پاسخ را انجام دهند.
مخفیسازی درخواست HTTP. مخفیسازی درخواست HTTP شامل الحاق یک درخواست HTTP دوم به درخواست اولیه و مشروع با بهرهبرداری از یک آسیبپذیری تزریق CRLF است. این میتواند منجر به مسمومیت کش، فرار از دیوار آتش یا ربودن درخواست شود.
تقسیم پاسخ HTTP. تقسیم پاسخ HTTP به یک مهاجم اجازه میدهد تا یک پاسخ HTTP واحد را با تزریق هدرهای جدید تقسیم کند، که ممکن است منجر به آسیبپذیریهای XSS یا ریدایرکت شود. مثال تقسیم پاسخ v.shopify.com اهمیت جستجوی فرصتهایی را نشان میدهد که یک سایت ورودی را میپذیرد که به عنوان بخشی از هدرهای بازگشتی خود استفاده میکند.
7. شناسایی و بهرهبرداری از آسیبپذیریهای XSS
حملات XSS زمانی رخ میدهد که وبسایتها برخی کاراکترها را بدون پاکسازی نمایش میدهند و باعث میشوند مرورگرها جاوااسکریپت مخرب را اجرا کنند.
تعریف XSS. آسیبپذیریهای XSS زمانی رخ میدهند که یک وبسایت به مهاجمان اجازه میدهد تا کد جاوااسکریپت مخرب را به صفحات آن تزریق کنند، که سپس توسط مرورگرهای سایر کاربران اجرا میشود. این میتواند منجر به ربودن حساب، سرقت دادهها یا تخریب شود.
انواع XSS. دو نوع اصلی XSS وجود دارد: بازتابی (که در آن بارگذاری بلافاصله اجرا میشود) و ذخیرهشده (که در آن بارگذاری در سرور ذخیره میشود و بعداً اجرا میشود). XSS همچنین میتواند مبتنی بر DOM، کور یا خودی باشد.
استراتژیهای کاهش. وبسایتها میتوانند با بهدرستی پاکسازی ورودیهای کاربر، کدگذاری کاراکترهای خاص و استفاده از سیاست امنیت محتوای (CSP) آسیبپذیریهای XSS را کاهش دهند. مثال عمده Shopify نشان میدهد که آسیبپذیریهای XSS نیازی به پیچیدگی ندارند و مهم است که بررسی کنید یک سایت چگونه با انواع مختلف ورودیها برخورد میکند.
8. بهرهبرداری از تزریق الگو برای اجرای کد
آسیبپذیریهای تزریق الگو زمانی رخ میدهند که موتورهای الگو ورودی کاربر را بدون پاکسازی مناسب نمایش میدهند و گاهی منجر به اجرای کد از راه دور میشوند.
تعریف تزریق الگو. آسیبپذیریهای تزریق الگو زمانی رخ میدهند که یک برنامه وب از یک موتور الگو برای تولید دینامیک صفحات وب، ایمیلها یا رسانههای دیگر استفاده میکند و یک مهاجم میتواند کد مخرب را به الگو تزریق کند. این میتواند منجر به اجرای کد از راه دور (RCE) یا XSS شود.
تزریق الگوی سمت سرور (SSTI). آسیبپذیریهای SSTI زمانی رخ میدهند که تزریق در منطق سمت سرور اتفاق بیفتد. این میتواند به مهاجمان اجازه دهد تا کد دلخواه را بر روی سرور اجرا کنند و احتمالاً کل سیستم را به خطر بیندازند.
تزریق الگوی سمت کلاینت (CSTI). آسیبپذیریهای CSTI در موتورهای الگوی کلاینت و نوشته شده در جاوااسکریپت رخ میدهند. در حالی که معمولاً نمیتوانند برای RCE استفاده شوند، اما میتوانند برای XSS استفاده شوند. مثال تزریق الگوی AngularJS اوبر نشان میدهد که چگونه میتوان برای شناسایی آسیبپذیریهای CSTI با ارسال بارگذاریهای ساده و مشاهده نتیجه نمایش داده شده، آزمایش کرد.
9. بهرهبرداری از تزریق SQL برای دستکاری پایگاههای داده
زمانی که یک آسیبپذیری در یک سایت مبتنی بر پایگاه داده به یک مهاجم اجازه میدهد تا با استفاده از SQL (زبان پرسوجوی ساختاریافته) به پایگاه داده سایت حمله کند یا آن را پرسوجو کند، به آن تزریق SQL (SQLi) گفته میشود.
تعریف تزریق SQL. آسیبپذیریهای تزریق SQL (SQLi) زمانی رخ میدهند که یک مهاجم بتواند کد SQL مخرب را به یک پرسوجوی پایگاه داده تزریق کند و به این ترتیب به دستکاری یا استخراج دادهها از پایگاه داده بپردازد. این میتواند منجر به سرقت دادهها، تغییر دادهها یا حتی تصاحب کامل پایگاه داده شود.
تکنیکهای بهرهبرداری. مهاجمان میتوانند با دستکاری پارامترهای URL، ورودیهای فرم یا سایر دادههای کنترلشده توسط کاربر که در پرسوجوهای SQL استفاده میشوند، از آسیبپذیریهای SQLi بهرهبرداری کنند. تکنیکهای رایج شامل استفاده از شرط OR 1=1، افزودن نظرات برای دور زدن فیلترها و استفاده از عبارات UNION برای استخراج دادهها است.
استراتژیهای کاهش. وبسایتها میتوانند با استفاده از عبارات آماده، پرسوجوهای پارامتری و اعتبارسنجی ورودی، آسیبپذیریهای SQLi را کاهش دهند. مثال SQLi کور Yahoo! Sports نشان میدهد که چگونه میتوان با جستجوی تغییرات ظریف در نتایج پرسوجو، آسیبپذیریهای SQLi را آزمایش کرد.
10. تسلط بر جعل درخواست سمت سرور برای دسترسی به شبکههای داخلی
یک آسیبپذیری جعل درخواست سمت سرور (SSRF) به یک مهاجم اجازه میدهد تا یک سرور را وادار به انجام درخواستهای شبکهای غیرمجاز کند.
تعریف SSRF. آسیبپذیریهای جعل درخواست سمت سرور (SSRF) زمانی رخ میدهند که یک مهاجم بتواند یک سرور را وادار به انجام درخواستهای شبکهای غیرمجاز کند و به این ترتیب به منابع داخلی دسترسی پیدا کند یا با خدمات خارجی به نمایندگی از سرور تعامل کند.
تکنیکهای بهرهبرداری. مهاجمان میتوانند با دستکاری پارامترهای URL، ورودیهای فرم یا سایر دادههای کنترلشده توسط کاربر که برای ساخت درخواستهای HTTP استفاده میشوند، از آسیبپذیریهای SSRF بهرهبرداری کنند. این میتواند به آنها اجازه دهد تا به سرورهای داخلی دسترسی پیدا کنند، فایلهای حساس را بخوانند یا اقدامات مخرب دیگری انجام دهند.
استراتژیهای کاهش. وبسایتها میتوانند با اعتبارسنجی ورودی کاربر، لیستگذاری دامنههای مجاز و پیادهسازی تقسیمبندی شبکه، آسیبپذیریهای SSRF را کاهش دهند. مثال SSRF ESEA نشان میدهد که چگونه میتوان از آسیبپذیریهای SSRF برای پرسوجو از متاداده AWS بهرهبرداری کرد.
11. بهرهبرداری از آسیبپذیریهای موجود در موجودیت خارجی XML برای استخراج دادهها
مهاجمان میتوانند از نحوه تجزیه XML (زبان نشانهگذاری قابل گسترش) توسط یک برنامه با بهرهبرداری از یک آسیبپذیری موجودیت خارجی XML (XXE) سوءاستفاده کنند.
تعریف XXE. آسیبپذیریهای موجودیت خارجی XML (XXE) زمانی رخ میدهند که یک برنامه ورودی XML را تجزیه میکند و اجازه میدهد موجودیتهای خارجی گنجانده شوند، که میتواند برای دسترسی به فایلهای محلی، منابع شبکه داخلی یا حتی اجرای کد دلخواه استفاده شود.
تکنیکهای بهرهبرداری. مهاجمان میتوانند با ایجاد اسناد XML مخرب که شامل اعلامیههای موجودیت خارجی هستند، از آسیبپذیریهای XXE بهرهبرداری کنند، که میتواند برای خواندن فایلهای حساس یا انجام اقدامات مخرب دیگر استفاده شود.
استراتژیهای کاهش. وبسایتها میتوانند با غیرفعال کردن پردازش موجودیتهای خارجی، اعتبارسنجی ورودی XML و استفاده از تجزیهکنندههای XML امن، آسیبپذیریهای XXE را کاهش دهند. مثال دسترسی به خواندن Google نشان میدهد که چگونه میتوان از آسیبپذیریهای XXE برای خواندن فایلهای داخلی بهرهبرداری کرد.
12. شناسایی و بهرهبرداری از آسیبپذیریهای اجرای کد از راه دور
یک آسیبپذیری اجرای کد از راه دور (RCE) زمانی رخ میدهد که یک برنامه از ورودی کنترلشده توسط کاربر بدون پاکسازی استفاده کند.
تعریف RCE. آسیبپذیریهای اجرای کد از راه دور (RCE) زمانی رخ میدهند که یک مهاجم بتواند کد دلخواه را بر روی یک سرور اجرا کند و احتمالاً کل سیستم را به خطر بیندازد. این یکی از شدیدترین انواع آسیبپذیریها است.
تکنیکهای بهرهبرداری. مهاجمان میتوانند با تزریق دستورات شل، اجرای توابع در زبان برنامهنویسی استفاده
آخرین بهروزرسانی::
FAQ
1. What is Real-World Bug Hunting: A Field Guide to Web Hacking by Peter Yaworski about?
- Comprehensive web hacking guide: The book serves as an authoritative reference for understanding and discovering web vulnerabilities, using real-life case studies from platforms like Twitter, Facebook, Google, and Uber.
- Focus on ethical hacking: It emphasizes responsible vulnerability discovery and reporting, teaching readers how to ethically find, report, and get paid for bugs.
- Beginner-friendly and practical: Written in plain language, it is accessible to both beginners and experienced developers, combining technical explanations with actionable examples from bug bounty programs.
2. Why should I read Real-World Bug Hunting by Peter Yaworski?
- Learn from real-world cases: The book features actual bug bounty reports, showing how vulnerabilities are discovered, exploited, and fixed in practice.
- Develop a hacker’s mindset: It encourages observation, perseverance, and understanding of application logic, helping readers think like attackers to uncover subtle bugs.
- Career and skill growth: Readers gain practical advice on starting a bug bounty career, writing effective reports, and building a reputation in the security community.
3. What are the key takeaways from Real-World Bug Hunting by Peter Yaworski?
- Vulnerability identification and exploitation: The book covers a wide range of web vulnerabilities, explaining how to find and exploit them using real examples.
- Responsible disclosure: It stresses the importance of ethical behavior, responsible reporting, and following program policies to protect both users and organizations.
- Continuous learning: Readers are encouraged to study past bug reports, automate reconnaissance, and engage with the security community for ongoing improvement.
4. What are the most common web vulnerabilities explained in Real-World Bug Hunting by Peter Yaworski?
- Cross-Site Scripting (XSS): The book details various XSS types, including stored, reflected, and DOM-based, with real-world examples.
- Insecure Direct Object References (IDOR): It explains how attackers exploit predictable or leaked identifiers to access unauthorized data.
- Server-Side Request Forgery (SSRF) and XML External Entity (XXE): These vulnerabilities are covered with case studies showing how attackers can make unauthorized requests or read sensitive files.
5. How does Peter Yaworski define bug bounties and web vulnerabilities in Real-World Bug Hunting?
- Vulnerability definition: A vulnerability is a weakness in a web application that allows unauthorized actions or access.
- Bug bounty programs: These are initiatives where companies reward ethical hackers for responsibly reporting vulnerabilities.
- Client-server and HTTP basics: The book explains how browsers communicate with servers, the stateless nature of HTTP, and the importance of understanding HTTP methods for finding vulnerabilities.
6. How does Real-World Bug Hunting by Peter Yaworski explain Open Redirect and HTTP Parameter Pollution (HPP) vulnerabilities?
- Open Redirects: Occur when attacker-controlled input causes a website to redirect users to malicious sites, often due to improper validation of redirect parameters.
- HTTP Parameter Pollution: Involves injecting multiple parameters with the same name to manipulate server or client behavior, potentially leading to unauthorized actions.
- Real-world examples: The book provides case studies from Shopify, HackerOne, and Twitter, demonstrating exploitation techniques and security implications.
7. What is Cross-Site Request Forgery (CSRF) and how does Peter Yaworski recommend defending against it in Real-World Bug Hunting?
- CSRF attack overview: CSRF tricks a victim’s browser into sending unauthorized requests to a trusted site where the victim is authenticated.
- Exploitation methods: The book explains how both GET and POST requests can be abused, with examples of image tags and hidden forms.
- Defensive strategies: It covers CSRF tokens, CORS policies, checking Origin/Referer headers, and using the SameSite cookie attribute to mitigate attacks.
8. How does Real-World Bug Hunting by Peter Yaworski describe HTML Injection, Content Spoofing, and CRLF Injection?
- HTML Injection and Content Spoofing: Attackers inject HTML or plaintext to create fake forms or misleading content, often relying on social engineering.
- CRLF Injection: Involves injecting carriage return and line feed characters into HTTP headers, enabling request smuggling or response splitting.
- Bypassing filters: The book discusses encoding techniques and real-world bypasses, such as multibyte character encoding, to evade security controls.
9. What is Cross-Site Scripting (XSS) and how does Peter Yaworski approach it in Real-World Bug Hunting?
- XSS fundamentals: XSS occurs when unsanitized input allows attackers to execute malicious JavaScript in victims’ browsers.
- Types and impacts: The book covers reflected, stored, DOM-based, blind, and self XSS, explaining their differences and real-world consequences.
- Testing and payloads: Practical examples and payloads are provided, with emphasis on context, persistence, and JavaScript knowledge.
10. How does Real-World Bug Hunting by Peter Yaworski cover Template Injection and Remote Code Execution (RCE) vulnerabilities?
- Template Injection: Occurs when unsanitized user input is evaluated by template engines, potentially leading to code execution on the server or client side.
- Remote Code Execution: RCE allows attackers to execute arbitrary code or shell commands on a server, often due to unsanitized input or insecure deserialization.
- Real-world cases: The book discusses Uber’s AngularJS and Flask Jinja2 injections, ImageMagick delegate vulnerabilities, and Rails deserialization exploits.
11. How does Peter Yaworski explain XML External Entity (XXE) vulnerabilities and their mitigation in Real-World Bug Hunting?
- XXE basics: XXE vulnerabilities arise when XML parsers process external entities, allowing attackers to read local files or make remote requests.
- Case studies: The book includes examples from Google, Facebook, and Wikiloc, showing how attackers crafted payloads to exfiltrate sensitive data.
- Mitigation advice: It recommends disabling external entity parsing and references the OWASP XML External Entity Prevention Cheat Sheet for best practices.
12. What strategies and tools does Peter Yaworski recommend for bug bounty hunting and reporting in Real-World Bug Hunting?
- Reconnaissance and mapping: Use tools like SubFinder, Nmap, EyeWitness, and Gobuster to enumerate subdomains, scan ports, and discover content.
- Effective reporting: Write clear, detailed reports with step-by-step instructions, proof-of-concept evidence, and impact explanations, always following program policies.
- Continuous learning and community: Engage with online training, read past bug reports, automate recon tasks, and participate in the bug bounty community to improve skills and efficiency.
نقد و بررسی
کتاب شکار باگهای واقعی به خاطر معرفی خود به هک وب، بهویژه برای مبتدیان، نقدهای مثبتی دریافت کرده است. خوانندگان از توضیحات دقیق آن دربارهی آسیبپذیریهای رایج و مثالهای واقعی از گزارشهای HackerOne قدردانی میکنند. این کتاب به خاطر ساختار واضح و دسترسیپذیریاش، حتی برای خوانندگان غیرتخصصی، مورد تحسین قرار گرفته است. برخی انتقادات شامل محتوای قدیمی (مثالها تنها تا سال ۲۰۱۶) و سادهسازی بیش از حد برخی مفاهیم است. بهطور کلی، این کتاب برای افرادی که به امنیت سایبری، امنیت برنامههای وب و شکار باگ علاقهمند هستند، توصیه میشود و پیشنهاد میشود که با منابع جدیدتر برای درک جامعتر همراه شود.
Similar Books









