Detection of DOM-based cross-site scripting vulnerabilities
US-9223977-B2 · Dec 29, 2015 · US
US9923916B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9923916-B1 |
| Application number | US-201514741536-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jun 17, 2015 |
| Priority date | Jun 17, 2015 |
| Publication date | Mar 20, 2018 |
| Grant date | Mar 20, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Adaptive methods and systems are provided to scan websites/Web applications for vulnerabilities. The methods and systems identify a reference string in a first response web page and an authorized context in which the reference string appears. The first response web page is generated at least in part based on the reference string. An escape attempt input is determined based on the reference string and authorized context, and the escape attempt input is present to the website. The methods and systems identify an escape attempt input in a second response web page and a candidate context in which the escape attempt input appears, wherein the second response web page is generated at least in part based on the escape attempt input. The methods and systems determine when the escape attempt input appears in an un-authorized context in the second response web page. The adaptive methods and systems herein, efficiently identify website vulnerabilities, and thus may be run frequently, thereby resulting in improved security without excessively drawing upon website resources.
Opening claim text (preview).
What is claimed is: 1. A computer implemented method executable on a hardware processor, comprising: identifying a reference string in a first response and a first context in which the reference string appears, wherein the first response is generated by a network service at least in part based on the reference string, wherein the reference string represents a safe character string that is expected to remain within the first context; determining an escape attempt input from an escape attempt database based at least in part on the reference string and first context; identifying the escape attempt input in a second response and a candidate context in which the escape attempt input appears, wherein the second response is generated by the network service at least in part based on the escape attempt input; and determining that the candidate context in which the escape attempt input appears is a second context that differs from the first context, wherein the escape attempt input represents a character string that is expected to escape from the first context into the second context. 2. The method of claim 1 , further comprising determining that a vulnerability exists in the network service when the escape attempt input escapes from the first context. 3. The method of claim 1 , wherein the escape attempt input is identified based on past escape attempt inputs that were successful or unsuccessful in escaping from the first context. 4. The method of claim 1 , further comprising: generating reference-context pairs in connection with a plurality of the reference strings and corresponding first contexts in which the reference strings appear; and building a map containing a list of the reference-context pairs and character sets representing escape attempt inputs to be presented to the network service. 5. The method of claim 1 , wherein at least the second response includes a script element formed by the network service in response to the escape attempt input, the script element representing the second context. 6. The method of claim 1 , wherein the first context represents a string context interleaved within parsing contexts, and the second context represents the parsing context. 7. The method of claim 1 , further comprising presenting the escape attempt input to the network service. 8. The method of claim 1 , wherein the network service represents a web server and the first and second responses represent reference and candidate returned webpages. 9. A system, comprising: at least one hardware processor; and a memory coupled to the at least one hardware processor, wherein the memory stores program instructions, wherein the program instructions are executable by the at least one hardware processor to: identify a reference string in a first response and a first context in which the reference string appears, wherein the first response is generated by a network service at least in part based on the reference string, wherein the reference string represents a safe character string that is expected to remain within the first context; determine an escape attempt input from an escape attempt database based at least in part on the reference string and first context; present the escape attempt input to the network service; identify the escape attempt input in a second response and a candidate context in which the escape attempt input appears, wherein the second response is generated by a network service at least in part based on the escape attempt input; and determine that the candidate context in which the escape attempt input appears is a second context that differs from the first context, wherein the escape attempt input represents a character string that is expected to escape from the first context into the second context. 10. The system of claim 9 , wherein the program instructions are executed by the at least one hardware processor to identify a recommended corrective action from a solution reference database of known injection attacks. 11. The system of claim 9 , further comprising a data store storing an escape log that includes at least one vulnerability item corresponding to the escape attempt input that has broken out of the first response and appears in the second context in the second response. 12. The system of claim 9 , further comprising a data store storing vulnerability items corresponding to escape attempt inputs that were determined to escape from the first context, the program instructions executable by the at least one hardware processor to analyze the vulnerability items in connection with determining corrective actions. 13. The system of claim 9 , further comprising a user interface that includes a code region to present at least a portion of source code defining the second response, and a region presenting a list of at least one vulnerability item identified based on the determining operation. 14. The system of claim 9 , further comprising a data store that includes the escape attempt database that stores a list of contexts that may be utilized in connection with the network service, the contexts having one or more candidate escape attempt inputs stored in connection there with, the hardware processor determining the escape attempt input to be presented to the network service based on the list of contexts in the escape attempt database. 15. The system of claim 9 , wherein the first context represents a string context interleaved within parsing contexts, and the second context represents the parsing context. 16. The system of claim 9 , wherein the network service represents a web server and the first and second responses represent first and second returned webpages.
Vulnerability analysis · CPC title
by executing in a restricted environment, e.g. sandbox or secure virtual machine · CPC title
based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title
involving event detection and direct action · CPC title
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.