Skip to content

Vulnerability Research

Vulnerabilities 101

A vulnerability in cybersecurity is defined as a weakness or flaw in the design, implementation or behaviours of a system or application. An attacker can exploit these weaknesses to gain access to unauthorised information or perform unauthorised actions. The term “vulnerability” has many definitions by cybersecurity bodies. However, there is minimal variation between them all.

For example, NIST defines a vulnerability as “weakness in an information system, system security procedures, internal controls, or implementation that could be exploited or triggered by a threat source”.

Vulnerabilities can originate from many factors, including a poor design of an application or an oversight of the intended actions from a user.

VulnerabilityDescription
Operating SystemThese types of vulnerabilities are found within Operating Systems (OSs) and often result in privilege escalation.
(Mis)Configuration-basedThese types of vulnerability stem from an incorrectly configured application or service. For example, a website exposing customer details.
Weak or Default CredentialsApplications and services that have an element of authentication will come with default credentials when installed. For example, an administrator dashboard may have the username and password of "admin". These are easy to guess by an attacker.
Application LogicThese vulnerabilities are a result of poorly designed applications. For example, poorly implemented authentication mechanisms that may result in an attacker being able to impersonate a user.
Human-FactorHuman-Factor vulnerabilities are vulnerabilities that leverage human behaviour. For example, phishing emails are designed to trick humans into believing they are legitimate.

There are resources on the internet that keep track of vulnerabilities for all sorts of software, operating systems and more! Here will showcase two databases that we can use to look up existing vulnerabilities for applications discovered in our infosec journey, specifically the following websites:

  1. NVD (National Vulnerability Database)
  2. Exploit-DB
  3. rapid7
  4. GitHub Gist

Terms

TermDefinition
VulnerabilityA vulnerability is defined as a weakness or flaw in the design, implementation or behaviours of a system or application.
ExploitAn exploit is something such as an action or behaviour that utilises a vulnerability on a system or application.
Proof of Concept (PoC)A PoC is a technique or tool that often demonstrates the exploitation of a vulnerability.

Vulnerability type

VulnerabilityDescription
Security MisconfigurationsSecurity misconfigurations involve vulnerabilities that are due to developer oversight. For example, exposing server information in messages between the application and an attacker.
Broken Access ControlThis vulnerability occurs when an attacker is able to access parts of an application that they are not supposed to be able to otherwise.
Insecure DeserializationThis is the insecure processing of data that is sent across an application. An attacker may be able to pass malicious code to the application, where it will then be executed.
InjectionAn Injection vulnerability exists when an attacker is able to input malicious data into an application. This is due to the failure of not ensuring (known as sanitising) input is not harmful.
Remote Code ExecutionRemote Code Execution (RCE) is a vulnerability that allows an attacker to run arbitrary code on a remote system. If exploited successfully, it often leads to full system compromise.

Last updated:

Released under the MIT License.