mirror of
https://github.com/github/codeql.git
synced 2026-03-30 20:28:15 +02:00
JS: Add tests in request forgery queries
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
| clientSide.js:14:5:14:64 | request ... search) | clientSide.js:14:42:14:63 | window. ... .search | clientSide.js:14:13:14:63 | 'https: ... .search | The $@ of this request depends on a $@. | clientSide.js:14:13:14:63 | 'https: ... .search | URL | clientSide.js:14:42:14:63 | window. ... .search | user-provided value |
|
||||
| clientSide.js:17:5:17:58 | request ... '/id') | clientSide.js:16:22:16:41 | window.location.hash | clientSide.js:17:13:17:57 | 'https: ... + '/id' | The $@ of this request depends on a $@. | clientSide.js:17:13:17:57 | 'https: ... + '/id' | URL | clientSide.js:16:22:16:41 | window.location.hash | user-provided value |
|
||||
| clientSide.js:21:5:21:54 | request ... '/id') | clientSide.js:20:18:20:28 | window.name | clientSide.js:21:13:21:53 | 'https: ... + '/id' | The $@ of this request depends on a $@. | clientSide.js:21:13:21:53 | 'https: ... + '/id' | URL | clientSide.js:20:18:20:28 | window.name | user-provided value |
|
||||
| clientSide.js:27:5:27:19 | request(custom) | clientSide.js:26:20:26:56 | require ... ource() | clientSide.js:27:13:27:18 | custom | The $@ of this request depends on a $@. | clientSide.js:27:13:27:18 | custom | URL | clientSide.js:26:20:26:56 | require ... ource() | user-provided value |
|
||||
edges
|
||||
| clientSide.js:11:11:11:15 | query | clientSide.js:12:42:12:46 | query | provenance | |
|
||||
| clientSide.js:11:19:11:40 | window. ... .search | clientSide.js:11:19:11:53 | window. ... ring(1) | provenance | |
|
||||
@@ -16,6 +17,8 @@ edges
|
||||
| clientSide.js:20:11:20:14 | name | clientSide.js:21:42:21:45 | name | provenance | |
|
||||
| clientSide.js:20:18:20:28 | window.name | clientSide.js:20:11:20:14 | name | provenance | |
|
||||
| clientSide.js:21:42:21:45 | name | clientSide.js:21:13:21:53 | 'https: ... + '/id' | provenance | |
|
||||
| clientSide.js:26:11:26:16 | custom | clientSide.js:27:13:27:18 | custom | provenance | |
|
||||
| clientSide.js:26:20:26:56 | require ... ource() | clientSide.js:26:11:26:16 | custom | provenance | |
|
||||
nodes
|
||||
| clientSide.js:11:11:11:15 | query | semmle.label | query |
|
||||
| clientSide.js:11:19:11:40 | window. ... .search | semmle.label | window. ... .search |
|
||||
@@ -33,4 +36,7 @@ nodes
|
||||
| clientSide.js:20:18:20:28 | window.name | semmle.label | window.name |
|
||||
| clientSide.js:21:13:21:53 | 'https: ... + '/id' | semmle.label | 'https: ... + '/id' |
|
||||
| clientSide.js:21:42:21:45 | name | semmle.label | name |
|
||||
| clientSide.js:26:11:26:16 | custom | semmle.label | custom |
|
||||
| clientSide.js:26:20:26:56 | require ... ource() | semmle.label | require ... ource() |
|
||||
| clientSide.js:27:13:27:18 | custom | semmle.label | custom |
|
||||
subpaths
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/javascript-all
|
||||
extensible: sourceModel
|
||||
data:
|
||||
- ['testlib', 'Member[getBrowserSource].ReturnValue', 'browser-url-query']
|
||||
- ['testlib', 'Member[getServerSource].ReturnValue', 'remote']
|
||||
@@ -39,6 +39,7 @@
|
||||
| serverSide.js:143:5:143:26 | axios.g ... t.href) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:143:15:143:25 | target.href | The $@ of this request depends on a $@. | serverSide.js:143:15:143:25 | target.href | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
|
||||
| serverSide.js:145:5:145:25 | axios.g ... dedUrl) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:145:15:145:24 | encodedUrl | The $@ of this request depends on a $@. | serverSide.js:145:15:145:24 | encodedUrl | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
|
||||
| serverSide.js:147:5:147:25 | axios.g ... pedUrl) | serverSide.js:139:19:139:31 | req.query.url | serverSide.js:147:15:147:24 | escapedUrl | The $@ of this request depends on a $@. | serverSide.js:147:15:147:24 | escapedUrl | URL | serverSide.js:139:19:139:31 | req.query.url | user-provided value |
|
||||
| serverSide.js:151:1:151:15 | request(custom) | serverSide.js:150:16:150:51 | require ... ource() | serverSide.js:151:9:151:14 | custom | The $@ of this request depends on a $@. | serverSide.js:151:9:151:14 | custom | URL | serverSide.js:150:16:150:51 | require ... ource() | user-provided value |
|
||||
edges
|
||||
| Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | provenance | |
|
||||
| Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | Request/app/api/proxy/route2.serverSide.ts:5:27:5:29 | url | provenance | |
|
||||
@@ -144,6 +145,8 @@ edges
|
||||
| serverSide.js:146:11:146:20 | escapedUrl | serverSide.js:147:15:147:24 | escapedUrl | provenance | |
|
||||
| serverSide.js:146:24:146:36 | escape(input) | serverSide.js:146:11:146:20 | escapedUrl | provenance | |
|
||||
| serverSide.js:146:31:146:35 | input | serverSide.js:146:24:146:36 | escape(input) | provenance | |
|
||||
| serverSide.js:150:7:150:12 | custom | serverSide.js:151:9:151:14 | custom | provenance | |
|
||||
| serverSide.js:150:16:150:51 | require ... ource() | serverSide.js:150:7:150:12 | custom | provenance | |
|
||||
nodes
|
||||
| Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | semmle.label | { url } |
|
||||
| Request/app/api/proxy/route2.serverSide.ts:4:11:4:13 | url | semmle.label | url |
|
||||
@@ -271,4 +274,7 @@ nodes
|
||||
| serverSide.js:146:24:146:36 | escape(input) | semmle.label | escape(input) |
|
||||
| serverSide.js:146:31:146:35 | input | semmle.label | input |
|
||||
| serverSide.js:147:15:147:24 | escapedUrl | semmle.label | escapedUrl |
|
||||
| serverSide.js:150:7:150:12 | custom | semmle.label | custom |
|
||||
| serverSide.js:150:16:150:51 | require ... ource() | semmle.label | require ... ource() |
|
||||
| serverSide.js:151:9:151:14 | custom | semmle.label | custom |
|
||||
subpaths
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/javascript-all
|
||||
extensible: sourceModel
|
||||
data:
|
||||
- ['testlib', 'Member[getBrowserSource].ReturnValue', 'browser-url-query']
|
||||
- ['testlib', 'Member[getServerSource].ReturnValue', 'remote']
|
||||
@@ -22,4 +22,7 @@ export function MyComponent() {
|
||||
request('https://example.com/api?q=' + name);
|
||||
|
||||
request(window.location.href + '?q=123');
|
||||
|
||||
const custom = require('testlib').getBrowserSource(); // $ Source[js/client-side-request-forgery]
|
||||
request(custom) // $ Alert[js/client-side-request-forgery];
|
||||
}
|
||||
|
||||
@@ -146,3 +146,6 @@ var server2 = http.createServer(function (req, res) {
|
||||
const escapedUrl = escape(input);
|
||||
axios.get(escapedUrl); // $ Alert[js/request-forgery]
|
||||
});
|
||||
|
||||
const custom = require('testlib').getServerSource(); // $ Source[js/request-forgery]
|
||||
request(custom) // $ Alert[js/request-forgery];
|
||||
|
||||
Reference in New Issue
Block a user