What are Application Attacks?
Published: 2021-06-20 02:55:33

---
title: What are Application Attacks?
published: true
description: Attacks that target applications giving attackers a large surface for attacks.
tags: 
//cover_image: https://direct_url_to_image.jpg
---
So attacks like [social engineering](https://dev.to/type404_/the-type-of-engineering-that-could-probably-land-you-in-jail-aka-social-engineering-48a9) isn't an ultimate goal for the hacker, it's a step towards further attacks. This post will touch on a few of those cool *(Might not be the best choice of words when it comes to describing attacks, but that's the best I got)* and interesting attacks!

### 1. Race Conditions
This typically occurs in a software as a result of programming error because two different code sequence is using the same resource concurrently and the program fails to account for this. A common type of attack in this case is **TOCTOU *(Time of Check Time of Use)*.** Think about it this way, you and your partner used the same bank account to withdraw cash at the same time, when you saw the balance it was $100 but when you tried to withdraw the amount it shows insufficient balance, that's because between the time you checked your balance and withdrew the money, your partner withdraws the balance. 
> A deadly error that happened because of this was when a Therac-25 radiation therapy machine malfunctioned and caused 3 deaths and at least 3 debilitating injuries. [Read more here](https://www.apple.com/in/shop/buy-ipad/ipad-air/64gb-sky-blue-wifi)

Even though these are not examples of an attack, it is a [vulnerability] (https://resources.infosecinstitute.com/topic/race-condition-vulnerabilities/) that an attacker could use to carry out attacks! 

###2. Buffer Overflow
It occurs when the data that is input into an application is more than the storage space reserved for that data. If a name field on a website could only accept 25 characters and if someone tries to enter 30 characters and it's not designed to handle this appropriately, it would become unstable by overwriting other areas of memory causing the application to crash. 
An attacker can also use this vulnerability to execute arbitrary code at a privileged level. [Heartbleed] (https://www.comparitech.com/blog/information-security/buffer-overflow-attacks-vulnerabilities/) was a famous buffer overflow attack.
 
###3. Code Injection
#### XSS (Cross Site Scripting): 
In this an attacker places a malicious code on the client side of a website, so when a legitimate user visits it they end up executing the code without their knowledge. This could expose confidential data, give an attacker unauthorised access or could even cause a legitimate user to attack a site without them knowing. 

#### DLL Injection: 
A DLL (Dynamic Link Library) Windows file is a type of file that contains instructions that other programs can use and share. E.g. Several programs can call upon a *ABC.dll* file to find the free space on a hard drive. 
In this attack a malicious dll file is loaded and instead of the legitimate file a program hooks into the malicious file. 

###4. Driver Manipulation
#### Shimming: 
It's when in case of incompatible device drivers a piece of code is written to provide backwards compatibility. An attacker can use this to write their own shims. In Jan 2015, [Microsoft] (https://www.trendmicro.com/vinfo/us/threat-encyclopedia/vulnerability/3473/january-2015-microsoft-releases-8-security-advisories) had a elevation of privilege vulnerbility as a result of this. 

###5. Replay Attack 
In this attack, packets are captured using packet sniffers, information is then extracted from them and then the packet is resend by the attacker. E.g. An attacker can sniff a packet when a legitimate user tries to login get their password and then use that password to log in later. 

*I think out of all of these, race condition would be mine favourite mainly because of its sheer sophistication! What would your be?*