IP Library › Granted Patent US 9,356,955
Granted Patent B2
US 9,356,955 · App. 14/658,393 · Granted May 31, 2016

Methods for determining cross-site scripting and related vulnerabilities in applications

Inventor: Kenneth F. Belva (New York, NY)
Assignee: Kenneth F. Belva
H04L63/1466G06F21/577H04L63/1416H04L67/02G06F2221/033H04L63/1433
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,356,955
App. No.
14/658,393
Granted
May 31, 2016
Kind
B2
Abstract

The invention provides computer-implemented methods and computer systems for testing applications such as web-based (HTTP) applications for cross-site scripting (XSS) and related security vulnerabilities and permits the discovery of previously unknown XSS and related vulnerabilities in applications without relying on known or previously generated static XSS signatures. The invention may be applied to any type of XSS or related vulnerability for any variation of application code.

Claims (31)

1. A computer-implemented method for testing an application for cross-site scripting vulnerabilities, comprising the steps of:

under control of at least one processor,

(a) for at least one field, parameter or Uniform Resource Locator (URL) of the application, submitting a request in which the field, parameter or URL contains a test slug consisting of an encoded or non-encoded test character or a string of test characters between two default slugs;

(b) determining when the application returns the test slug with the test character or string of test characters and whether any of the test characters in the test slug are transformed or not transformed in the returned test slug;

(c) storing in non-transitory computer memory the result of the determinations made in step (b);

(d) repeating steps (a)-(c) for a plurality of different test characters or strings of test characters;

(e) generating at least one exploit by automatically determining the sequence of characters needed to create syntactically executable correct code;

(f) storing the at least one exploit in non-transitory computer memory; and

(g) before steps (a)-(d),

(i) for at least one field, parameter or URL of the application, submitting a request in which the parameter, field or URL contains a default slug not having any special characters; and

(ii) determining when the application reflects the default slug without any transformation of characters in response to the request,

wherein when the application returns the default slug without any transformation of characters, the test slug used in step (a) consists of the encoded or non-encoded test character(s) sandwiched between two default slugs which are the same or different.

2. The computer-implemented method of claim 1 , wherein the test character is a special character or at least one of the test characters of the string of test characters is a special character.

3. A computer system configured to test an application for cross-site scripting vulnerabilities, comprising:

at least one processor;

non-transitory processor-accessible memory; and

computer instructions stored in the non-transitory processor-accessible memory, said computer instructions configured to direct the at least one processor to perform the steps of:

(a) for at least one field, parameter or Uniform Resource Locator (URL) of the application, submitting a request in which the field, parameter or URL contains a test slug consisting of an encoded or non-encoded test character or a string of test characters between two default slugs;

(b) determining when the application returns the test slug with the test character or string of test characters and whether any of the test characters in the test slug are transformed or not transformed in the returned test slug;

(c) storing in the non-transitory processor-accessible memory the result of the determinations made in step (b);

(d) repeating steps (a)-(c) for a plurality of different test characters or strings of test characters;

(e) generating at least one exploit by automatically determining the sequence of characters needed to create syntactically executable correct code;

(f) storing the at least one exploit in the non-transitory processor-accessible memory; and

(g) before steps (a)-(d),

(i) for at least one field, parameter or URL of the application, submitting a request in which the parameter, field or URL contains a default slug not having any special characters; and

(ii) determining when the application reflects the default slug without any transformation of characters in response to the request,

wherein when the application returns the default slug without any transformation of characters, the test slug used in step (a) consists of the encoded or non-encoded test character(s) sandwiched between two default slugs which are the same or different.

4. The computer system of claim 3 , wherein the test character is a special character or at least one of the test characters of the string of test characters is a special character.

5. The computer system of claim 3 , further comprising:

a communication module under control of the at least processor, the communications module configured to provide communication between the computer system and the application to be tested for cross-site scripting vulnerabilities by the computer system.

6. The computer system of claim 5 , wherein the test character is a special character or at least one of the test characters of the string of test characters is a special character.

Continuity (4)
Provisional Application 62126412 · Feb 27, 2015
Provisional Application 62029625 · Jul 28, 2014
Provisional Application 61953775 · Mar 15, 2014
Related Publication 20150264082A1 · Sep 17, 2015