In Chapter 4, we described various techniques you can use to map a target application and gain an initial understanding of how it works. That methodology involved interacting with the application in largely benign ways, to catalog its content and functionality, determine the technologies in use, and identify the key attack surface.
In this chapter, we describe ways in which you can extract further information from an application during an actual attack. This mainly involves interacting with the application in unexpected and malicious ways, and exploiting anomalies in the application's behavior in order to extract information that is of value to you. If successful, such an attack may enable you to retrieve sensitive data such as user credentials, gain a deeper understanding of an error condition in order to fine-tune your attack, discover more detail about the technologies in use, and map the application's internal structure and functionality.
Many web applications return informative error messages when unexpected events occur. These may range from simple built-in messages that disclose only the category of the error, to full-blown debugging information that gives away a lot of detail about the application's state.
Most applications are subject to various kinds of usability testing prior to deployment, and this testing will typically identify most error conditions that may arise when the application is being used ...