- عنوان کتاب: Penetration Testing with Java, A step-by-step pen testing handbook for Java applications
- نویسنده: Nancy Snoke
- حوزه: آزمون نفوذ, برنامه نویسی جاوا
- سال انتشار: 2025
- تعداد صفحه: 473
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 14.4 مگابایت
از کودکی مجذوب فناوری بودم – قطعات الکترونیکی را از هم جدا میکردم و در نوجوانی برنامهنویسی مقدماتی را به خودم یاد میدادم. با الهام از آر. دنیل اولیوا، اثر ایزاک آسیموف، هدفم ساخت یک ربات هوش مصنوعی بود. در دانشگاه، بر هوش مصنوعی و درک زبان طبیعی تمرکز کردم و در این رشته دکترا گرفتم. با این حال، یک بیماری خانوادگی مرا مجبور کرد که برنامه را ترک کنم و در شرکتی مشغول به کار شوم که در آنجا شیوههای ناامن مانند رمزهای عبور سخت و محدودیتهای امنیتی قابل عبور را شناسایی کردم، هرچند نگرانیهایم برطرف شد. در حین گذراندن دوره تحصیلات تکمیلی، با اعضای یک تیم امنیتی از فورچون ۵۰۰ آشنا شدم که غرایز مرا تشویق کردند. کمی بعد، با وجود نداشتن هیچ تجربه امنیتی قبلی، به عنوان یک نفوذگر به تیم آنها پیوستم و اشتیاقی برای آزمایش برنامههای وب و موبایل پیدا کردم. پس از چند سال، به مهندسی نرمافزار بازگشتم اما عمیقاً درگیر امنیت ماندم، آن را در کارم ادغام کردم و گواهینامهها، کنفرانسها و ابتکارات فرهنگ امنیتی را دنبال کردم. با تشخیص ارتباط بین شیوههای امنیتی ضعیف و فرهنگ ضعیف، ابتکارات متمرکز بر توسعهدهندگان مانند «ناهار و یادگیری» را راهاندازی کردم و بعداً کلاس کدنویسی امن تحت نظارت PCI DSS شرکتم را رهبری کردم. این دوره شش هفتهای مبتنی بر آزمایشگاه، که من آن را حول یک برنامه جاوا که عمداً ناامن بود، ساختم، پایه و اساس بخش برنامههای وب این کتاب شد. به طور مشابه، بخش برنامههای تلفن همراه از یک ارائه کنفرانس در مورد دستگاههای آسیبپذیر اینترنت اشیا و یک کلاس کدنویسی امن مرتبط سرچشمه گرفت. این تجربیات در نهایت محتوا و جهتگیری این کتاب را شکل دادند. فصل 1: مقدمه: امنیت جاوا، کدنویسی امن و تست نفوذ – امنیت و تست نفوذ جاوا اصول اولیه امنیت جاوا، از جمله 10 مورد برتر OWASP، کدنویسی امن، اصول طراحی امن و مقدمه تست نفوذ را مورد بحث قرار میدهد. فصل 2: شناسایی و نقشهبرداری – فرآیندهای اساسی تست نفوذ، از جمله نقشهبرداری و شناسایی برنامه وب را مورد بحث قرار میدهد. نقشهبرداری شامل استفاده از سیستم به عنوان کاربر و نگهداری سابقه برای کاوش بیشتر است. شناسایی شامل یافتن فناوریها و دادهها و محتوای پنهان در یک برنامه وب است. فصل ۳: کار عملی با وب پروکسیها – راهاندازی و استفاده از دو ابزار محبوب برای تست نفوذ برنامههای وب را بررسی میکند. Burp Suite دارای نسخه رایگان و حرفهای با پیشنهادات مختلف است. OWASP ZAP یک ابزار رایگان است. هر دو وب پروکسیهای رایگان ارائه میدهند. فصل ۴: مشاهدهپذیری با تزریق SQL – آسیبپذیریهای مختلف تزریق را بررسی میکند، از جمله یک راهنمای گام به گام نحوه آزمایش تزریق SQL که نحوه استفاده از SQLmap را نشان میدهد. راهنمای گام به گام اسکریپتنویسی بین سایتی، Reflected، Stored و Dom XSS را مورد بحث قرار میدهد. سپس آزمایش تزریق دستور، تزریق XML و تزریق Xpath مورد بحث قرار میگیرد. فصل ۵: پیکربندی نادرست با مقادیر پیشفرض – پیکربندیهای نادرست و پیکربندیهای پیشفرض، از جمله کتابخانههای آسیبپذیر جاوا اسکریپت و سایر اجزای آسیبپذیر شناخته شده را مورد بحث قرار میدهد. این شامل رابطهای ادمین، اعتبارنامههای پیشفرض و گزینههای اشکالزدایی و توسعهدهنده میشود. فصل ۶: بهرهبرداری از CORS – کد سمت کلاینت، از جمله اعتبارسنجیها، ذخیرهسازی و CORها را مورد بحث قرار میدهد. این راهنما دور زدن اعتبارسنجیهای سمت کلاینت و دستکاری ذخیرهسازی سمت کلاینت را بررسی میکند. در ادامه نگاهی عمیق به بهرهبرداری از CORها، از جمله کد POC، خواهیم داشت. فصل 7: بررسی بردارها با حملات DoS – بردارهای حمله انکار سرویس، از جمله پردازش بیش از حد ورودی، مشکلات همزمانی، جستجوهای wild card، اتمام منابع و مصرف حافظه را بررسی میکند. مراحل حمله و اقدامات حفاظتی برای محافظت از محیط در ادامه خواهد آمد. سپس بردار حمله XXE، که میتواند باعث DOS شود، به طور عمیق پوشش داده خواهد شد. فصل 8: اجرای آسیبپذیریهای منطق کسبوکار – انواع رایج آسیبپذیریهای منطق کسبوکار، از جمله آپلودهای دلخواه فایل، جریانهای فرآیند متوالی و قوانین خاص برنامه که میتوان از آنها عبور کرد را مورد بحث قرار میدهد. فصل 9: پروتکلهای احراز هویت – احراز هویت، از جمله ورود، خروج، تغییر رمز عبور و رمز عبور فراموش شده آسیبپذیر را مورد بحث قرار میدهد. این فصل همچنین شمارش نام کاربری و حملات brute force، از جمله یک راهنمای بهرهبرداری با استفاده از ابزارهایی مانند Burp Suite Intruder را بررسی میکند. فصل 10: مدیریت جلسه – این فصل یک مرور کلی از استفاده از ابزار Burp Suite sequencer برای آزمایش شناسههای جلسه قابل حدس انجام میدهد. این به صورت دستی از تثبیت جلسه و ربودن جلسه سوءاستفاده میکند. از آنجایی که SPAها و APIها گاهی اوقات از JWTها برای ذخیره اطلاعات جلسه استفاده میکنند، این فصل با آسیبپذیریهای JWT به پایان میرسد. فصل 11: شیوههای مجوزدهی – در مورد آسیبپذیریهای مجوزدهی، از جمله عدم کنترل دسترسی سطح عملکرد، ارجاع مستقیم ناامن به شیء، افزایش امتیاز، CSRF و SSRF بحث خواهد شد. آزمایش کنترل دسترسی مبتنی بر نقش با استفاده از ابزار نقشه سایت Burp Suite و افزونه Burp Suite autorize بررسی خواهد شد. فصل 12: آسیبپذیریهای Deserialization جاوا – در مورد سوءاستفاده دستی از آسیبپذیری Deserialization جاوا، که شامل شناسایی، ایجاد و ارائه … است، صحبت خواهد شد.
From childhood, I was fascinated by technology—taking apart electronics and teaching myself basic programming as a teenager. Inspired by Isaac Asimov’s R. Daneel Olivaw, I aimed to create an AI robot. In college, I focused on artificial intelligence and natural language understanding, pursuing a PhD in the field. However, a family illness forced me to leave the program and take a job at a company where I identified insecure practices like hardcoded passwords and bypassable security constraints, though my concerns were dismissed. While taking a grad school course, I met members of a Fortune 500 security team who encouraged my instincts. Soon after, I joined their team as a pentester, despite having no prior security experience, and developed a passion for testing web and mobile applications. After a few years, I returned to software engineering but remained deeply involved in security, integrating it into my work and pursuing certifications, conferences, and security culture initiatives. Recognizing the link between weak security practices and poor culture, I launched developer-focused initiatives like lunch-and-learns and later led my company’s PCI DSS-mandated secure coding class. This six-week labbased course, which I built around an intentionally insecure Java application, became the foundation for the web application section of this book. Similarly, the mobile application section originated from a conference presentation on vulnerable IoT devices and a related secure coding class. These experiences ultimately shaped the content and direction of this book. Chapter 1: Introduction: Java Security, Secure Coding, and Penetration Testing – Java Security and Pentesting discusses the basics of Java security, including the OWASP top 10, secure coding, secure design fundamentals, and pentesting introduction. Chapter 2: Reconnaissance and Mapping – Will discuss basic pentesting processes, including web application mapping and reconnaissance. Mapping involves using the system as a user and keeping a history for further exploration. Reconnaissance involves finding technologies and hidden data and content in a web application. Chapter 3: Hands-on with Web Proxies – Walks through the setup and usage of two popular tools for web application pentesting. Burp Suite has a free and professional version with different offerings. OWASP ZAP is a free tool. Both offer free web proxies. Chapter 4: Observability with SQL Injections – Examines various injection vulnerabilities, including a walkthrough of how to test for SQL injection showing how to use SQLmap. The cross-site scripting walkthrough discusses reflected, stored, and Dom XSS. Then testing for command injection, XML injection, and Xpath injection are discussed. Chapter 5: Misconfiguration with Default Values – Discusses misconfigurations and default configurations, including vulnerable JavaScript libraries and other known vulnerable components. This includes admin interfaces, default credentials, and debug and developer options. Chapter 6: CORS Exploitation – Discusses client-side code, including validations, storage, and CORs. It will walk through bypassing client-side validations and manipulating client-side storage. An in-depth look at CORs exploitation will follow, including POC code. Chapter 7: Exploring Vectors with DoS Attacks – Examines denial of service attack vectors, including excessive input processing, concurrency issues, wild card searches, resource exhaustion, and memory consumption. Attack walkthroughs and safeguards for protecting the environment will follow. Then XXE attack vector, which can cause a DOS, will be covered in depth. Chapter 8: Executing Business Logic Vulnerabilities – Will discuss the common types of business logic vulnerabilities, including arbitrary file uploads, sequential process flows, and specific application rules that can be bypassed. Chapter 9: Authentication Protocols – Discusses authentication, including vulnerable login, logout, password change, and forgot password. This chapter also examines username enumeration and brute force attacks, including an exploitation walkthrough using tools such as Burp Suite Intruder. Chapter 10: Session Management – It will do a walk-through of using the Burp Suite sequencer tool to test for guessable session IDs. It will manually exploit session fixation and session hijackings. As SPAs and APIs sometimes use JWTs to store the session information, the chapter will conclude with JWT vulnerabilities. Chapter 11: Authorization Practices – Will discuss authorization vulnerabilities, including missing function level access control, insecure direct object reference, privilege escalation, CSRF, and SSRF. Testing rolebased access control using the Burp Suite site map tool and Burp Suite extension autorize will be walked through. Chapter 12: Java Deserialization Vulnerabilities – Will go through manual Java deserialization vulnerability exploitation, which includes identifying, creating, and delivering the payload. Then, it will show how to use tools such as ysoserial, Metasploit, and Burp Suite to exploit these vulnerabilities. Chapter 13: Java Remote Method Invocation Vulnerabilities – Will describe Java RMI and how it allows Java objects to invoke methods on remote systems. Then it will provide a walkthrough of exploiting an insecure RMI implementation. This will show how to use this to execute remote code and gain unauthorized access. Chapter 14: Java Native Interface Vulnerabilities – Will describe JNI, which allows Java applications to be called by native applications or libraries. A walkthrough of an insecure JNI implementation will show how to corrupt memory and perform code execution. Chapter 15: Static Analysis of Java Android Applications – Will show how to decompile the apk file back into Java code using apktool, dex2jar and jd-gui. Then static code analysis can be used to find secrets, discover vulnerable activities, vulnerable receivers, misuse of shared preferences, and vulnerable local database usage. Chapter 16: Dynamic Analysis of Java Android Applications – Will show how to use an emulator to run an application in a controlled environment to test security scenarios, such as authentication, authorization and business logic. The main tools will be Android Emulator and ADB (Android Debug Bridge) to debug and exploit vulnerable intents, receivers and activities. Chapter 17: Network Analysis of Java Android Applications – Discussed how to use Burp Suite to proxy network requests from an Android application to identify all API calls and other data communications. Certificate pinning will be discussed, as well as ways to bypass it.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: Penetration Testing with Java
نظرات کاربران