Professional Documents
Culture Documents
A weakness or a flaw in the system which an attacker may find and exploit. An updated OS,
Default Passwords, Unencrypted protocols are all good examples of vulnerabilities.
A vulnerability is a hole or a weakness in the application, which can be a design flaw or an
implementation bug, that allows an attacker to cause harm to the stakeholders of an application.
Stakeholders include the application owner, application users, and other entities that rely on the
application.
Examples of vulnerabilities
Types of Vulnerabilities:
Once an individual has gained unauthorized access to data or computer networks, they can cause
damage to an organization in a number of ways.
● They may directly steal files, data, or other information.
● They may leverage unauthorized access to further compromise accounts.
● They may destroy information or sabotage systems and networks.
● All of these scenarios carry inherent risks, costs, and potential fines to the business —
but the long-term damage from unauthorized access can carry on insidiously in the form
of damaged reputation and trust, as well as ongoing impacts on revenue.
Strategies to prevent unauthorized access-
NOTE- Above highlighted part is just for knowledge purposes, no need to study for examination.
File upload vulnerabilities are when a web server allows users to upload files to its filesystem
without sufficiently validating things like their name, type, contents, or size. Failing to properly
enforce restrictions on these could mean that even a basic image upload function can be used to
upload arbitrary and potentially dangerous files instead. This could even include server-side
script files that enable remote code execution.
In some cases, the act of uploading the file is in itself enough to cause damage. Other attacks
may involve a follow-up HTTP request for the file, typically to trigger its execution by the
server.
Risk Factors:
● The impact of this vulnerability is high, supposed code can be executed in the server
context or on the client side. The likelihood of detection for the attacker is high. The
prevalence is common. As a result the severity of this type of vulnerability is high.
● It is important to check a file upload module’s access controls to examine the risks
properly.
● Server-side attacks: The web server can be compromised by uploading and executing a
web-shell which can run commands, browse system files, browse local resources, attack
other servers, or exploit the local vulnerabilities, and so forth.
● Client-side attacks: Uploading malicious files can make the website vulnerable to
client-side attacks such as XSS or Cross-site Content Hijacking.
● Uploaded files can be abused to exploit other vulnerable sections of an application when
a file on the same or a trusted server is needed (can again lead to client-side or server-side
attacks)
● Uploaded files might trigger vulnerabilities in broken libraries/applications on the server
side (e.g. ImageMagick flaw that is called ImageTragick!).
● Uploaded files might trigger vulnerabilities in broken real-time monitoring tools (e.g.
Symantec antivirus exploit by unpacking a RAR file)
● An attacker might be able to put a phishing page into the website or deface the website.
● The file storage server might be abused to host troublesome files including malwares,
illegal software, or adult contents. Uploaded files might also contain malwares’ command
and control data, violence and harassment messages, or steganographic data that can be
used by criminal organizations.
● Uploaded sensitive files might be accessible by unauthorized people.
● File uploaders may disclose internal information such as server internal paths in their
error messages.
4) Buffer Overflow:
Buffers are memory storage regions that temporarily hold data while it is being transferred from
one location to another. A buffer overflow (or buffer overrun) occurs when the volume of data
exceeds the storage capacity of the memory buffer. As a result, the program attempting to write
the data to the buffer overwrites adjacent memory locations.
For example, a buffer for log-in credentials may be designed to expect username and password
inputs of 8 bytes, so if a transaction involves an input of 10 bytes (that is, 2 bytes more than
expected), the program may write the excess data past the buffer boundary.
Buffer overflows can affect all types of software. They typically result from malformed inputs or
failure to allocate enough space for the buffer. If the transaction overwrites executable code, it
can cause the program to behave unpredictably and generate incorrect results, memory access
errors, or crashes.