How to Identify and Exploit Security Vulnerabilities: Types, Methods & Tools