IP Library Granted Patent US 11,991,202
Granted Patent B2
US 11,991,202 · App. 17/545,022 · Granted May 21, 2024

Scanning unexposed web applications for vulnerabilities

Inventors: Jijo John (London, CA); Dmitriy Kashitsyn (Yorba Linda, CA); Andrew Tisdale (Huntington Beach, CA)
Assignee: Rapid7, Inc.
H04L63/1433G06F21/50G06F21/55G06F21/60H04L63/10H04L63/1408H04L63/20
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 11,991,202
App. No.
17/545,022
Granted
May 21, 2024
Kind
B2
Abstract

Disclosed herein are methods, systems, and processes for scanning unexposed web applications for security vulnerabilities. A web application executing on a client computing device is accessed and a determination is made that elements in a document object model (DOM) associated with the web application are completely loaded. A brute force operation is performed to identify unexposed actionable events associated with the elements in the DOM. The unexposed actionable events identified as part of performing the brute force operation are received from the client computing device, and the web application is scanned for security vulnerabilities based on the unexposed actionable events.

Claims (57)

1. A computer-implemented method, comprising:

accessing a web application executing on a client computing device, wherein the web application loads elements of a document object model (DOM) at runtime from a virtual DOM utilized by a first web application framework;

determining, based on a DOM polling technique, that elements in the DOM are completely loaded from the virtual DOM;

selecting one or more elements and associated events from the DOM;

generating a list of elements based at least in part on a matching of the one or more elements and associated events selected with a set of common elements and associated events used by the first web application framework; and

transferring the list of elements and associated properties to a web application scanner.

2. The computer-implemented method of claim 1 , wherein

the first web application framework does not expose one or more actionable events associated with the one or more elements in the DOM of the web application due to the one or more elements being generated at runtime from the virtual DOM.

3. The computer-implemented method of claim 1 , further comprising:

retrieving a framework type of the first web application framework from the web application.

4. The computer-implemented method of claim 1 , further comprising:

generating a first extraction package that corresponds to the first web application framework; and

transmitting the first extraction package to the web application to generate the list of elements.

5. The computer-implemented method of claim 1 , further comprising:

generating a first scanning package that corresponds to the first web application framework; and

transmitting the first scanning package to the web application to scan the web application for one or more security vulnerabilities based on the list of elements.

6. The computer-implemented method of claim 5 , wherein

the first web application framework is a JavaScript framework.

7. The computer-implemented method of claim 1 , wherein

the one or more elements and associated events are selected based on respective tag names of the one or more elements and associated events in the DOM.

8. The computer-implemented method of claim 1 , wherein

the list of elements indicates respective locations of the elements in the DOM.

9. The computer-implemented method of claim 1 , further comprising:

causing the web application to execute one or more events associated with the elements in the list.

10. The computer-implemented method of claim 9 , wherein

the scanning of the web application is performed based on analyzing one or more captured network requests associated with the execution of the one or more events.

11. A system comprising:

one or more processors and associated memory that implement an application security server, the application security server configured to:

access a web application executing on a client computing device, wherein the web application loads elements of a document object model (DOM) at runtime from a virtual DOM utilized by a first web application framework;

determine, based on a DOM polling technique, that elements in the DOM are completely loaded from the virtual DOM;

select one or more elements and associated events from the DOM;

generate a list of elements by matching the one or more elements and associated events selected with a set of common elements and associated events used by the first web application framework; and

transfer the list of elements and associated properties to a web application scanner.

12. The system of claim 11 , wherein

the first web application framework does not expose one or more actionable events associated with the one or more elements in the DOM of the web application due to the one or more elements being generated at runtime from the virtual DOM.

13. The system of claim 11 , wherein the application security server is configured to:

retrieve a framework type of the first web application framework from the web application.

14. The system of claim 11 , wherein the application security server is configured to:

generate a first extraction package that corresponds to the first web application framework; and

transmit the first extraction package to the web application to generate the list of elements.

15. The system of claim 11 , wherein the application security server is configured to:

generate a first scanning package that corresponds to the first web application framework; and

transmit the first scanning package to the web application to scan the web application for one or more security vulnerabilities based on the list of elements.

16. The system of claim 11 , wherein

the one or more elements and associated events are selected based on respective tag names of the one or more elements and associated events in the DOM.

17. The system of claim 11 , wherein

the list of elements indicates respective locations of the elements in the DOM.

18. The system of claim 11 , wherein the application security server is configured to:

cause the web application to execute one or more events associated with the elements in the list.

19. The system of claim 18 , wherein

the scanning of the web application is performed based on analyzing one or more captured network requests associated with the execution of the one or more events.

20. One or more non-transitory computer readable storage media storing program instructions that when executed on one or more processors cause the one or more processors to:

access a web application executing on a client computing device, wherein the web application loads elements of a document object model (DOM) at runtime from a virtual DOM utilized by a first web application framework;

determine, based on a DOM polling technique, that elements in the DOM are completely loaded from the virtual DOM;

select one or more elements and associated events from the DOM;

generate a list of elements by matching the one or more elements and associated events selected with a set of common elements and associated events used by the first web application framework; and

transfer the list of elements and associated properties to a web application scanner.

Assignments (2)
SECURITY INTEREST Recorded Jun 26, 2025
From: RAPID7, INC.; RAPID7 LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071743/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2022
From: JOHN, JIJO; KASHITSYN, DMITRIY; TISDALE, ANDREW
To: RAPID7, INC.
Reel/Frame 058926/0235 →
Continuity (2)
Continuation 16545044 · Aug 20, 2019
Related Publication 20220159032A1 · May 19, 2022