web application with ajax cs 526 advanced interned and web system presenters faris kateb mohammed...

13
Web Application with AJAX CS 526 advanced interned and Web system Presenters Faris Kateb Mohammed AbdulAziz Omar Alzahrani

Upload: jean-lane

Post on 13-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Web Application with AJAX

CS 526 advanced interned and Web system

PresentersFaris Kateb

Mohammed AbdulAzizOmar Alzahrani

Agenda • Introduction to Ajax

• General Techniques used by Ajax?

• Ajax Security Vulnerabilities• JS Array poisoning

• Flash-based cross domain access

• Malformed JS Object serialization

• JSON pair injection

• Manipulated XML stream

• Script injection in DOM

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 2

-Country: -Country:

-State:

-Country:

-City:

-State:

Server Database

USA USA USA

CO CO

Denver -City:

-State: CO

Denver -City:

-State:

-City:

Before AJAX

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 3

-Country:

-City:

-State:

Server Database

USA

CO

Denver

After AJAX

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 4

AJAX- What’s AJAX?

Asynchronous Javascript And XMLE.g., Google Search String

Matching/Suggestions

- How it achieve that?- The XMLHttpRequest Object

Base object for AJAX Available in most browsers ThroughThe XMLHttpRequest object you can :

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 5

General Technique

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 6

Ajax vulnerabilities• There are many vulnerabilities

• Our concentration are on the security holes

• A list of some security holes included in our research

• JS Array poisoning

• Flash-based cross domain access

• Malformed JS Object serialization

• JSON pair injection

• Manipulated XML stream

• Script injection in DOM

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 7

JS Array poisoning• Popular object for serialization

• Easy and effective

• Poisoning a JS array spoils the DOM context.

• A JS array can be exploited with simple cross-site scripting in the browser.

• Example: auction site for a used mobile

new Array(“Android”, “nexus s”, “Tmobile”, “500$”, “1 years”)• user can inject a script in the last field

• alert(’Array has length ' + a2.length + ' and its element is also ' + a2[5]);

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 8

Flash-based cross domain access

• It is possible to make GET and POST requests from JavaScripts within a browser by using a Flash plugin’s Ajax interface.

• This also enables cross-domain calls to be made from any particular domain.

• The page code

• Attackers link to swf

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 9

<object><param name="movie" value="swf/banner.swf" /><param name="img" value="image1.jpg" /><param name="link" value="http://www.whitehatsec.com" /><embed src="swf/banner.swf" flashvars="img=image1.jpg&amp;link=http://www.whitehatsec.com" /></object>

http://www.example.com/swf/banner.swf?img=http://web.appsec.ws/images/WH.jpg&link=javascript:confirm('Session%20Information%20Sent%20to%20Hacker');//

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 10

REFERENCES[1] http://www.asp.net/ajax.

[2] http://www.w3schools.com/ajax/ajax_intro.asp.

[3] Ajax Security Holes and Driving Factors http://www.net-security.org.

[4] SC Magazine, Article: Hot or not: AJAX vulnerabilities, http://www.scmagazine.com

[5] https://blog.whitehatsec.com/tag/crossdomain-xml/

[6] Article: AJAX Vulnerabilities: How Big the Threat?, http://www.about.com

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 11

Malformed JS Object serialization

JavaScript supports (OOP).

Allows the user to create an object using

"New Object()“.

Object can be serialized using Ajax and used by JavaScript code.

Attacker can sends a malicious “subject” line embedded with script then it makes the receiver a victim of XSS.

]3[

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 12

JSON pair injectionJavaScript Object Notation (JSON) is a simple

data exchange format which can contain object.

Attacker can inject a malicious script in either "Link" or "Desc" (XSS).

Another way to serialize malicious content to the user.

]3[

April 30, 2012AJAX/Faris Kateb, Mohammed Abdulaziz & Omar Alzahrani 13