lesson 6 web based attacks

32
Web Based Attacks CNG275 Frank H. Vianzon

Upload: frank-vianzon

Post on 19-May-2015

543 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Lesson 6 web based attacks

Web Based Attacks

CNG275 Frank H. Vianzon

Page 2: Lesson 6 web based attacks

Why Web Attacks?

• Everything is on the web– Banking portals– E-commerce– Admin interfaces

• Traditional Firewalls do not block

Page 3: Lesson 6 web based attacks

OWASP

OWASP is the Open Web Application Security Project

www.owasp.org worldwide not-for-profit charitable organization focused

on improving the security of software. Our mission is to make software security visible, so that

individuals and organizations worldwide can make

informed decisions about true software security risks.

Page 4: Lesson 6 web based attacks

OWASP TOP 10

• A1-Injection• A2-Broken Authentication and

Session Management• A3-Cross-Site Scripting • A4-Insecure Direct Object

References

Page 5: Lesson 6 web based attacks

• A5 – Security Misconfiguration• A6- Sensitive Data Exposure • A7-Missing Function Level Access

Control • A8 –Cross-Site Request Forgery

Page 6: Lesson 6 web based attacks

• A9 – Using components with known vulnerabilities

• A10-unvalidated redirects

Page 7: Lesson 6 web based attacks

Verizon Breech Report

Page 8: Lesson 6 web based attacks

Basics – HTTP Protocol

HTTP is the base of the web, it's really important to have a deep understanding of this protocol in order to perform web security testing. Knowing and understanding HTTP specificities will often allow you to find

vulnerabilities and exploit them.

Page 9: Lesson 6 web based attacks

Client-Server Dialog

HTTP is a dialog between one client and one server. The client, the browser, sends

a request to the server, and then the server responds to this request. HTTP has the

advantages of being a text protocol and therefore really easy to read, understand

and learn for a human being. By default, most web servers are available on port TCP/80.

Page 10: Lesson 6 web based attacks

HTTPS

Start with TCP 3 way handshake

SYN

SYN-ACK

ACK

Page 11: Lesson 6 web based attacks

HTTPS

Hello

Client_Hello

Server_Hello

Page 12: Lesson 6 web based attacks

HTTPS

Certificate

Client Verify

Page 13: Lesson 6 web based attacks

How do we see certificates?

• Internet Explorer– Tools Internet Options Content Certificates

• Firefox– Tools options Advance Certificates

• Chrome– Bar Settings Advance HTTPS/SSL Managed

Certificates

Page 14: Lesson 6 web based attacks

Cookies

Used to track user activity

Same origin policy blocks

Page 15: Lesson 6 web based attacks

Name that site

• DNS resolution occurs after typing the name of a web browser

Page 16: Lesson 6 web based attacks

• The most common request occurs when a browser asks the server for content. The browser sends a request composed of the following elements:

• An HTTP method that will allow the server to understand what kind of operation the browser wants to perform.

Page 17: Lesson 6 web based attacks

• A resource that corresponds to what the client is trying to access on the server.

• A version that will allow the server to know what version of HTTP the browser is talking. (user agent string)

• Optionally, various headers giving more information to the server like the browser's name and version, the preferred language of the user (like in English, German, French,...),

Page 18: Lesson 6 web based attacks

HTTP Methods

Many HTTP methods exist:• The GET method: to request for content, it's

the most common request sent by browsers;• The POST method: POST is used to send a

larger amount of data, it's used by most forms and also for file upload.

Page 19: Lesson 6 web based attacks

• The HEAD method: the HEAD method is very similar to the GET request, the only difference is in the response provided by the server, the response will only contain the headers and no body. HEAD is massively used by web spiders to check if a web page has been updated without downloading the full page content.

• There are many other HTTP methods: PUT, DELETE, PATCH, TRACE

Page 20: Lesson 6 web based attacks

HTTP Headers

• HTTP requests contain a lot of HTTP Headers. You can obviously manipulate all of them but if you provide incorrect values the request is likely to be rejected or the header won't be used.

Page 21: Lesson 6 web based attacks

Example Headers

• Referer: to know where the clients come from;

• Cookie: to retrieve the cookies;• User-Agent: to know what browser users use;• X-Forwarded-For: to get the source IP

address (even if it's not the best method to do this).

Page 22: Lesson 6 web based attacks

HTTP Responses Example

Page 23: Lesson 6 web based attacks

Common HTTP Response Codes

• 200 OK: the request was processed successfully.

• 302 Found: used to redirect users for example when they logout to

• send them back to the login page.• 401 Unauthorized: when the resource's

access is restricted.

Page 24: Lesson 6 web based attacks

HTTP Response Codes

• 404 Not found: the resource requested by the client was not found.

• 500 Internal Server Error: an error occurred during the processing of the request.

Page 25: Lesson 6 web based attacks

URL Encoding

• As we have seen, some characters are used in HTTP to distinguish between:

Page 26: Lesson 6 web based attacks

Cross-Site Scripting Attacks

Two types of XSS attacks• Reflective• Stored

Page 27: Lesson 6 web based attacks

Reflective XSS (OWASP-DV-001)

Reflected Cross-site Scripting (XSS) is another name for non-persistent XSS, where the attack doesn't load with the vulnerable web application but is originated by the victim loading the offending URI. In this article we will see some ways to test a web application for this kind of vulnerability.

Page 28: Lesson 6 web based attacks

Stored XSS

Stored Cross Site Scripting (XSS) is the most dangerous type of Cross Site Scripting. Web applications that allow users to store data are potentially exposed to this type of attack.

Page 29: Lesson 6 web based attacks

XSS Excersice

Page 30: Lesson 6 web based attacks

Cross-Site Request Forgery

• CSRF is an attack which forces an end user to execute unwanted actions on a web application in which he/she is currently authenticated. With a little help of social engineering (like sending a link via email/chat), an attacker may force the users of a web application to execute actions of the attacker's choosing. A successful CSRF exploit can compromise end user data and operation, when it targets a normal user. If the targeted end user is the administrator account, a CSRF attack can compromise the entire web application.

Page 31: Lesson 6 web based attacks

CSRF Example

Page 32: Lesson 6 web based attacks

SQL Injection

• A SQL injection attack consists of insertion or "injection" of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data (Insert/Update/Delete), execute administration operations on the database (such as shutdown the DBMS), recover the content of a given file existing on the DBMS file system and, in some cases, issue commands to the operating system.

• SQL injection attacks are a type of injection attack, in which SQL commands are injected into data-plane input in order to affect the execution of predefined SQL commands.