Rigorously test and improve the security of all your Web software!
It’s as certain as death and taxes: hackers will mercilessly attack your Web sites, applications, and services. If you’re vulnerable, you’d better discover these attacks yourself, before the black hats do. Now, there’s a definitive, hands-on guide to security-testing any Web-based software: How to Break Web Software.
In this book, two renowned experts address every category of Web software exploit: attacks on clients, servers, state, user inputs, and more. You’ll master powerful attack tools and techniques as you uncover dozens of crucial, widely exploited flaws in Web architecture and coding. The authors reveal where to look for potential threats and attack vectors, how to rigorously test for each of them, and how to mitigate the problems you find. Coverage includes
· Client vulnerabilities, including attacks on client-side validation
· State-based attacks: hidden fields, CGI parameters, cookie poisoning, URL jumping, and session hijacking
· Attacks on user-supplied inputs: cross-site scripting, SQL injection, and directory traversal
· Language- and technology-based attacks: buffer overflows, canonicalization, and NULL string attacks
· Server attacks: SQL Injection with stored procedures, command injection, and server fingerprinting
· Cryptography, privacy, and attacks on Web services
Your Web software is mission-critical–it can’t be compromised. Whether you’re a developer, tester, QA specialist, or IT manager, this book will help you protect that software–systematically.
About the Authors xi
Chapter 1: The Web Is Different 1
Chapter 2: Gathering Information on the Target 11
Chapter 3: Attacking the Client 29
Chapter 4: State-Based Attacks 41
Chapter 5: Attacking User-Supplied Input Data 65
Chapter 6: Language-Based Attacks 85
Chapter 7: Attacking the Server 99
Chapter 8: Authentication 115
Chapter 9: Privacy 135
Chapter 10: Web Services 149
Appendix A: Fifty Years of Software: Key Principles for Quality 159
Appendix B: Flowershop Bugs 171
Appendix C: Tools 179