Synopses & Reviews
"The techniques in this book are not an option for testers–they are mandatory and these are the guys to tell you how to apply them!"
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.
Companion CD contains full source code for one testing tool you can modify and extend, free Web security testing tools, and complete code from a flawed Web site designed to give you hands-on practice in identifying security holes.
About the Author
Mike Andrews is a senior consultant at Foundstone who specializes in software security and leads the Web application security assessments and Ultimate Web Hacking classes. He brings with him a wealth of commercial and educational experience from both sides of the Atlantic and is a widely published author and speaker. Before joining Foundstone, Mike was a freelance consultant and developer of Web-based information systems, working with clients such as The Economist, the London transport authority, and various United Kingdom universities. In 2002, after being an instructor and researcher for a number of years, Mike joined the Florida Institute of Technology as an assistant professor, where he was responsible for research projects and independent security reviews for the Office of Naval Research, Air Force Research Labs, and Microsoft Corporation. Mike holds a Ph.D. in computer science from the University of Kent at Canterbury in the United Kingdom, where his focus was on debugging tools and programmer psychology.
James A. Whittaker is a professor of computer science at the Florida Institute of Technology (Florida Tech) and is founder of Security Innovation. In 1992, he earned his Ph.D. in computer science from the University of Tennessee. His research interests are software testing, software security, software vulnerability testing, and anticyber warfare technology. James is the author of How to Break Software (Addison-Wesley, 2002) and coauthor (with Hugh Thompson) of How to Break Software Security (Addison-Wesley, 2003), and over fifty peer-reviewed papers on software development and computer security. He holds patents on various inventions in software testing and defensive security applications and has attracted millions in funding, sponsorship, and license agreements while a professor at Florida Tech. He has also served as a testing and security consultant for Microsoft, IBM, Rational, and many other United States companies.
In 2001, James was appointed to Microsoft’s Trustworthy Computing Academic Advisory Board and was named a “Top Scholar” by the editors of the Journal of Systems and Software, based on his research publications in software engineering. His research team at Florida Tech is known for its testing technologies and tools, which include the highly acclaimed runtime fault injection tool Holodeck. His research group is also well known for their development of exploits against software security, including cracking encryption, passwords and infiltrating protected networks via novel attacks against software defenses.
Table of Contents
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