Information disclosure in error messages
In this lab, the objective was to identify sensitive information exposed through unhandled application errors. Using Burp Suite, HTTP requests were intercepted while browsing product pages. Each request contained a productId parameter, which was observed in the intercepted traffic within the proxy history. The request GET /product?productId=1 was selected for further testing and sent to Burp Repeater to allow controlled modification and analysis of the parameter behavior.
In Burp Repeater, the productId parameter was modified from its expected integer value to a non-numeric format (1/2). This alteration was used to test how the backend handles unexpected input types. The application failed to process the request correctly and triggered an unhandled exception. Instead of returning a controlled error response, the server generated and returned a detailed stack trace in the HTTP response.
The stack trace contained internal application information that is typically restricted in production environments. This included details about the backend framework and runtime behavior. The presence of verbose error output indicated that exception handling was not properly configured to suppress debug information from being exposed to the client.
Further inspection of the error response revealed that the application was running on Apache Struts version 2.3.31. This information is considered sensitive in a security context because it discloses the exact framework and version in use. Such details can assist an attacker in identifying known vulnerabilities associated with that specific software version.
Comments