cross site scripting (xss)

16
XSS Ayman Babiker

Upload: owaspkhartoum

Post on 12-Nov-2014

2.337 views

Category:

Education


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Cross Site Scripting (XSS)

XSSAyman Babiker

Page 2: Cross Site Scripting (XSS)

You Should Already Know

• HTML.• JavaScript.• PHP, ASP… etc.

Page 3: Cross Site Scripting (XSS)

Cross Site Scripting (XSS)

• One of the most common application-layer web attacks.

• Operates on the client-side (in the user’s web browser).

• 13% of total hacking technics (in 2011).• Neglected by the developers. WHY ?!.• Executed every time the page is loaded.• JavaScript, VBScript, ActiveX, HTML, or

Flash.

Page 4: Cross Site Scripting (XSS)

Cross Site Scripting (XSS)

• XSS can cause a variety of problems for the end user (annoyance “alerts” ~ complete account compromise “session hijacking”).

• Installation of Trojan horse programs.• Page modification and redirection.

Page 5: Cross Site Scripting (XSS)

XSS types

• Stored XSS Attacks.• Reflected XSS Attacks.• DOM Based XSS.

Page 6: Cross Site Scripting (XSS)
Page 7: Cross Site Scripting (XSS)

HACKED

Scenario

Page 8: Cross Site Scripting (XSS)

How it works

<form method=“get” action=“index.php”> <input name=“hack_me” /> <input type=“submit” value=“Submit” /></form>

Page 9: Cross Site Scripting (XSS)

How it works<?php $txt=$_GET[‘hack_me’]; echo $txt; // echo “<script>alert("Hacked");</script>”

?>

Page 10: Cross Site Scripting (XSS)

Alternate XSS Syntax

• Using Script in Attributes• <body onload=alert(Hacked ')>• <img src="http://url.to.file.which/not.exist"

onerror=alert(document.cookie);>• XSS using Script Via Encoded URI Schemes

• <img src=j&#X41vascript:alert(‘Hacked')>

Page 11: Cross Site Scripting (XSS)

Commonly used to achieve the following malicious results:

• Identity theft.• Accessing sensitive or restricted

information.• Gaining free access to otherwise paid for

content.• Spying on user’s web browsing habits.• Altering browser functionality.• Web application defacement.• Denial of Service attacks.

Page 12: Cross Site Scripting (XSS)

• There are a huge number of XSS attack vectors, following a few simple rules can completely defend against this serious attack.

• The simplest form of XSS protection is to pass all external data through a filter (in server-side).

• It is recommended to use libraries that has been tried and tested by the community.

• XSS techniques keep changing (your filters will need to be updated periodically).

• ESAPI (OWASP), AntiXSS (Microsoft).

XSS Countermeasures

Page 13: Cross Site Scripting (XSS)

• HTML Escape Before Inserting Untrusted Data into HTML Element Content:• ESAPI Encoder Example:

String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) );

• AntiXSS Equivalent:string safe = Microsoft.Security.Application.AntiXss.HtmlEncode( Request.QueryString[ "input" ] );

XSS Countermeasures

Page 14: Cross Site Scripting (XSS)

• Also untrusted Data into:• HTML Common Attributes.• JavaScript Data Values.• HTML Style Property Values.• HTML URL Parameter Values.

• Also use HTTPOnly cookie flag.

XSS Countermeasures

Page 16: Cross Site Scripting (XSS)

The End.