Software can be very complex to build and maintain. Even after excessive testing, there is no guarantee that the software is free from any vulnerabilities. There are two kinds of company, those who know that they have been breached and those who don’t. A perfect piece of software with no vulnerabilities does not exist. Hidden deep in the source code, there are always errors that can then lead to vulnerabilities that allow threat actors to be leveraged for exploitation. There are several methods that can be implemented in terms of exploitation, which will be addressed later in this chapter. It is important to understand their differences because the mitigation for each might be different. In this chapter, you will discover the most common exploitation techniques, all of which are illustrated as follows:
