IP Library › Granted Patent US 9,223,977
Granted Patent B2
US 9,223,977 · App. 13/447,904 · Granted Dec 29, 2015

Detection of DOM-based cross-site scripting vulnerabilities

Inventors: Yair Amit (Tel-Aviv, IL); Yinnon A. Haviv (Beerotaim, IL); Daniel Kalman (Herzliya, IL); Omer Tripp (Herzliya, IL); Omri Weisman (Herzliya, IL)
Assignee: International Business Machines Corporation
G06F21/566G06F21/52G06F21/577
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,223,977
App. No.
13/447,904
Granted
Dec 29, 2015
Kind
B2
Abstract

Testing a Web-based application for security vulnerabilities. At least one client request including a payload having a unique identifier can be communicated to the Web-based application. Response HTML and an associated Document Object Model (DOM) object can be received from the Web-based application. Content corresponding to the payload can be identified in the DOM object via the unique identifier. A section of the DOM object including the payload can be identified as un-trusted.

Claims (40)

1. A method of testing a Web-based application for security vulnerabilities, the method comprising:

communicating at least one client request comprising a payload having a unique identifier to the Web-based application;

responsive to communicating the at least one client request comprising the payload having the unique identifier to the Web-based application, receiving from the Web-based application response hypertext markup language (HTML) and an associated Document Object Model (DOM) object, the DOM object including the unique identifier communicated to the web-based application in the payload;

via a processor, identifying in the DOM object the unique identifier communicated to the web-based application in the payload; and

responsive to identifying in the received DOM object the unique identifier communicated to the web-based application in the payload, identifying as un-trusted a section of the received DOM object comprising content corresponding to the payload, which is identified in the received DOM object via the unique identifier.

2. The method of claim 1 , further comprising:

generating a DOM abstraction from the DOM object, the DOM abstraction comprising a section of the DOM object containing the content corresponding to the payload;

rendering a response HTML using the DOM abstraction in lieu of the DOM object.

3. The method of claim 2 , wherein generating the DOM abstraction from the DOM object comprises:

excluding from the DOM abstraction sections of the DOM object not comprising the content corresponding to the payload.

4. The method of claim 2 , further comprising:

when rendering the response HTML, performing a static security analysis on the response HTML to monitor script code associated with the HTML that is executed in order to identify whether at least one access to the DOM abstraction retrieves the content corresponding to the payload; and

when the access to the DOM abstraction retrieves the content corresponding to the payload, generating a flag indicating that a vulnerability exists within the Web-based application.

5. The method of claim 4 , wherein performing the static security analysis on the response HTML to monitor script code associated with the HTML that is executed in order to identify whether at least one access to the DOM abstraction retrieves the content corresponding to the payload comprises:

identifying a pop-up dialog containing the content corresponding to the payload.

6. The method of claim 1 , further comprising:

receiving a list of a plurality of payloads;

wherein communicating at least one client request comprising the payload having the unique identifier to the Web-based application comprises:

automatically communicating a plurality of client requests to the Web-based application, where each of the client requests comprises a respective payload selected from the list of the plurality of payloads.

7. The method of claim 1 , wherein the payload having the unique identifier comprises content echoed by the Web-based application to a DOM of a web page.

8. A method of testing a Web-based application for security vulnerabilities, the method comprising:

communicating at least one client request comprising a payload having a unique identifier to the Web-based application;

responsive to communicating the at least one client request comprising the payload having the unique identifier to the Web-based application, receiving from the Web-based application response hypertext markup language (HTML) and an associated Document Object Model (DOM) object, the DOM object including the unique identifier communicated to the web-based application in the payload;

via a processor, identifying content corresponding to the payload in the DOM object via the unique identifier;

generating a DOM abstraction from the DOM object, the DOM abstraction comprising a section of the DOM object containing content corresponding to the payload, and excluding from the DOM abstraction sections of the DOM object not comprising content corresponding to the payload;

rendering the response HTML using the DOM abstraction in lieu of the DOM object;

when rendering the response HTML, performing a static security analysis on the response HTML to monitor script code associated with the HTML that is executed in order to identify whether at least one access to the DOM abstraction retrieves the content corresponding to the payload; and

when the access to the DOM abstraction retrieves the content corresponding to the payload, generating a flag indicating that a vulnerability exists within the Web-based application.

9. The method of claim 8 , wherein performing the static security analysis on the response HTML to monitor script code associated with the HTML that is executed in order to identify whether at least one access to the DOM abstraction retrieves the content corresponding to the payload comprises:

identifying a pop-up dialog containing the content of the payload.

10. The method of claim 8 , further comprising:

receiving a list of a plurality of payloads;

wherein communicating at least one client request comprising the payload having the unique identifier to the Web-based application comprises:

automatically communicating a plurality of client requests to the Web-based application, where each of the client requests comprises a respective payload selected from the list of the plurality of payloads.

11. The method of claim 8 , wherein the payload having the unique identifier comprises content echoed by the Web-based application to a DOM of a web page.

12. A method of testing a Web-based application for security vulnerabilities, the method comprising:

communicating at least one client request comprising a script code having a unique identifier to a Web-based application;

responsive to communicating the at least one client request comprising the payload having the unique identifier to the Web-based application, receiving from the Web-based application response hypertext markup language (HTML) and an associated Document Object Model (DOM) object, the received DOM object including the unique identifier communicated to the Web-based application in the script code;

via a processor, identifying in the DOM object the unique identifier communicated to the Web-based application in the script code; and

responsive to identifying in the received DOM object the unique identifier communicated to the web-based application in the script code, identifying as un-trusted a section of the received DOM object comprising content corresponding to the script code, which is identified in the received DOM object via the unique identifier.

Continuity (2)
Continuation 13283989 · Oct 28, 2011
Related Publication 20130111595A1 · May 2, 2013