Skip to:Content
|
Bottom
Cover image for How to break Web software functional and security testing of Web applications and Web services
Title:
How to break Web software functional and security testing of Web applications and Web services
Personal Author:
Publication Information:
Upper Saddle River, NJ : Addison-Wesley, 2006
Physical Description:
1 CD-ROM ; 12 cm.
ISBN:
9780321369444
General Note:
Accompanies text of the same title : QA76.76.T48 A52 2006

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010122925 CP 8182 Computer File Accompanies Open Access Book Compact Disc Accompanies Open Access Book
Searching...
Searching...
30000010125459 CP 8182 Computer File Accompanies Open Access Book Compact Disc Accompanies Open Access Book
Searching...

On Order

Summary

Summary

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.


Author Notes

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.


Excerpts

Excerpts

Numerous times we've been asked when the next book in the How to Break... series will come out and what it's going to be about. The overwhelming request from our readers has been on the subject of Web applications. It seems many testers find they are working in this area and are facing the prospect of testing applications that employ applications' specialized protocols and languages that exist on the World Wide Web. Although many of the tests from How to Break Software (Addison-Wesley, 2002) and How to Break Software Security (Addison-Wesley, 2003) are relevant in this environment, applications hosted on the Internet do suffer from some unique problems. This book tackles those problems in the same spirit of its predecessors with a decided slant toward security issues in Web applications. Before we go into what this book is all about, first let us tell you what it isn't all about. We are not trying to rewrite the Hacking Exposed books. Although there is an overlap of subject matter with the hacking literature, our intention is not to show how to exploit a Web server or Web application. Our focus is about how to test Web applications for common failures that can lead to such exploitation. How to Break Web Software is a book written for software developers, testers, managers, and quality assurance professionals to help put the hackers out of business. This focus necessarily means knowledge of hacker techniques is included in this book. After all, one needs to understand the techniques of their adversary in order to counter them. But, this book is about testing, not about exploitation. Our focus is to guide testers toward areas of the application that are prone to problems and methods of rooting them out. This book isn't about creating a correct Web application architecture, nor is it about coding Web applications. There are other published opinions on this and each Web development platform has its own unique challenges that must be considered, which books like Innocent Code do so well. How to Break Web Software , however, does contain a lot of information about how not to architect and code a Web application. Thus, Web developers would be wise to consider it as part of their reference library on secure Web programming. What this book is about is pointing the tester toward specific attacks to try on their application to test its defenses. We will be looking at classic examples of malicious input, ways of bypassing validation and authorization checks, as well as problems inherited from certain configurations/languages/architectures--all in a simple format that will show where to look for the problem, how to test for the problem, and advice on methods of mitigation. How to Break Web Software is intended as a one-stop shop for people to dip into to get information (and inspiration) to test web-based applications for common problems. Happy Web testing! Mike Andrews, Orange County, California James A. Whittaker, Melbourne, Florida (c) Copyright Pearson Education. All rights reserved. Excerpted from How to Break Web Software: Functional and Security Testing of Web Applications and Web Services by Mike Andrews, James A. Whittaker All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

Prefacep. vii
Acknowledgmentsp. ix
About the Authorsp. xi
Chapter 1 The Web Is Differentp. 1
What's In This Chapter?p. 1
Introductionp. 1
The World Wide Webp. 2
The Price of Web Utopiap. 5
The Web Versus Client-Serverp. 6
A Fault Model for Web Appsp. 9
The Web Serverp. 9
The Web Clientp. 9
The Networkp. 10
Chapter 2 Gathering Information on the Targetp. 11
What's In This Chapter?p. 11
Introductionp. 11
Attack 1 Panning for Goldp. 12
Attack 2 Guessing Files and Directoriesp. 20
Attack 3 Holes Left by Other People-Vulnerabilities in Sample Applicationsp. 26
Chapter 3 Attacking the Clientp. 29
What's In This Chapter?p. 29
Introductionp. 29
Attack 4 Bypass Restrictions on Input Choicesp. 30
Attack 5 Bypass Client-Side Validationp. 35
Chapter 4 State-Based Attacksp. 41
What's In This Chapter?p. 41
Introductionp. 41
Attack 6 Hidden Fieldsp. 42
Attack 7 CGI Parametersp. 46
Attack 8 Cookie Poisoningp. 51
Attack 9 URL Jumpingp. 55
Attack 10 Session Hijackingp. 59
Chapter 5 Attacking User-Supplied Input Datap. 65
What's In This Chapter?p. 65
Introductionp. 65
Attack 11 Cross-Site Scriptingp. 66
Attack 12 SQL Injectionp. 74
Attack 13 Directory Traversalp. 79
Chapter 6 Language-Based Attacksp. 85
What's In This Chapter?p. 85
Introductionp. 85
Attack 14 Buffer Overflowsp. 86
Attack 15 Canonicalizationp. 90
Attack 16 NULL-String Attacksp. 95
Chapter 7 Attacking the Serverp. 99
What's In This Chapter?p. 99
Introductionp. 99
Attack 17 SQL Injection II-Stored Proceduresp. 100
Attack 18 Command Injectionp. 103
Attack 19 Fingerprinting the Serverp. 106
Attack 20 Denial of Servicep. 112
Chapter 8 Authenticationp. 115
What's In This Chapter?p. 115
Introductionp. 115
Attack 21 Fake Cryptographyp. 116
Attack 22 Breaking Authenticationp. 120
Attack 23 Cross-Site Tracingp. 125
Attack 24 Forcing Weak Cryptographyp. 129
Chapter 9 Privacyp. 135
What's In This Chapter?p. 135
Introductionp. 135
User Agentsp. 136
Referrerp. 139
Cookiesp. 140
Web Bugsp. 142
Clipboard Accessp. 142
Caching Pagesp. 144
ActiveX Controlsp. 146
Browser Helper Objectsp. 146
Chapter 10 Web Servicesp. 149
What's In This Chapter?p. 149
Introductionp. 149
What Are Web Services?p. 149
XMLp. 150
SOAPp. 151
WSDLp. 152
UDDIp. 153
Threatsp. 153
WSDL Scanning Attackp. 153
Parameter Tamperingp. 155
XPATH Injection Attackp. 155
Recursive Payload Attackp. 156
Oversize Payload Attackp. 157
External Entity Attackp. 157
Appendix A Fifty Years of Software: Key Principles for Qualityp. 159
1950 to 1959: Genesisp. 160
1960 to 1969: Exodusp. 161
1970 to 1979: Chaosp. 162
1980 to 1989: Repairp. 163
CASE Toolsp. 163
Formal Methodsp. 164
1990 to 1999: Processp. 165
2000 to 2009: Engineering?p. 167
Appendix B Flowershop Bugsp. 171
Appendix C Toolsp. 179
TextPadp. 179
Niktop. 180
Wiktop. 183
Stunnelp. 189
BlackWidowp. 190
Wgetp. 193
cURLp. 195
Parosp. 198
SPIKE Proxyp. 200
SSLDiggerp. 204
The Human Brainp. 205
Indexp. 207
Go to:Top of Page