Skip to content
This repository was archived by the owner on Sep 1, 2022. It is now read-only.

Commit d5e5780

Browse files
committed
step 10
1 parent e377733 commit d5e5780

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @name Cross-site scripting vulnerable plugin
3+
* @kind path-problem
4+
* @id js/xss-unsafe-plugin
5+
*/
6+
7+
import javascript
8+
import DataFlow::PathGraph
9+
10+
class Configuration extends TaintTracking::Configuration {
11+
Configuration() { this = "XssUnsafeJQueryPlugin" }
12+
13+
override predicate isSource(DataFlow::Node source) {
14+
exists(DataFlow::FunctionNode plugin |
15+
plugin = jquery().getAPropertyRead("fn").getAPropertySource() and
16+
source = plugin.getLastParameter()
17+
)
18+
}
19+
20+
override predicate isSink(DataFlow::Node sink) {
21+
sink = jquery().getACall().getArgument(0)
22+
}
23+
}
24+
25+
from Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink
26+
where cfg.hasFlowPath(source, sink)
27+
select sink, source, sink, "Potential XSS vulnerability in plugin."

courses/javascript/unsafe-jquery/image/config/config.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"property-read.ql": "property-read.csv",
99
"jquery-plugins.ql": "jquery-plugins.csv",
1010
"plugin-options.ql": "plugin-options.csv",
11-
"sources.ql": "sources.csv"
11+
"sources.ql": "sources.csv",
12+
"final.ql": "final.csv"
1213
}
1314
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
"sink","URL for sink","source","URL for source","sink","URL for sink","col3"
2+
"this.options.target","file:///opt/src/js/affix.js:19:22:19:40","option","file:///opt/src/js/affix.js:119:19:119:24","this.options.target","file:///opt/src/js/affix.js:19:22:19:40","Potential XSS vulnerability in plugin."
3+
"this.options.parent","file:///opt/src/js/collapse.js:140:14:140:32","option","file:///opt/src/js/collapse.js:170:19:170:24","this.options.parent","file:///opt/src/js/collapse.js:140:14:140:32","Potential XSS vulnerability in plugin."
4+
"selector","file:///opt/src/js/scrollspy.js:113:20:113:27","option","file:///opt/src/js/scrollspy.js:136:19:136:24","selector","file:///opt/src/js/scrollspy.js:113:20:113:27","Potential XSS vulnerability in plugin."
5+
"this.selector","file:///opt/src/js/scrollspy.js:127:7:127:19","option","file:///opt/src/js/scrollspy.js:136:19:136:24","this.selector","file:///opt/src/js/scrollspy.js:127:7:127:19","Potential XSS vulnerability in plugin."
6+
"$.isFun ... ewport)","file:///opt/src/js/tooltip.js:54:49:54:193","option","file:///opt/src/js/tooltip.js:494:19:494:24","$.isFun ... ewport)","file:///opt/src/js/tooltip.js:54:49:54:193","Potential XSS vulnerability in plugin."

0 commit comments

Comments
 (0)