File tree Expand file tree Collapse file tree
python/ql/lib/semmle/python/frameworks Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /**
2+ * Provides classes for SSRF sinks modeled using Models as Data (MaD).
3+ */
4+
5+ private import python
6+ private import semmle.python.Concepts
7+ private import semmle.python.ApiGraphs
8+ private import semmle.python.frameworks.data.ModelsAsData
9+
10+ /**
11+ * INTERNAL: Do not use.
12+ *
13+ * Sets up SSRF sinks as Http::Client::Request
14+ */
15+ module SSRFMaDModel {
16+ /**
17+ * An HTTP request modeled from `ssrf` sinks, modeled using MaD.
18+ */
19+ class SSRFSink extends Http:: Client:: Request:: Range instanceof API:: CallNode {
20+ DataFlow:: Node urlArg ;
21+
22+ SSRFSink ( ) {
23+ (
24+ this .getArg ( _) = urlArg
25+ or
26+ this .getArgByName ( _) = urlArg
27+ ) and
28+ urlArg = ModelOutput:: getASinkNode ( "ssrf" ) .asSink ( )
29+ }
30+
31+ override DataFlow:: Node getAUrlPart ( ) { result = urlArg }
32+
33+ override string getFramework ( ) { result = "MaD" }
34+
35+ override predicate disablesCertificateValidation (
36+ DataFlow:: Node disablingNode , DataFlow:: Node argumentOrigin
37+ ) {
38+ // NOTE: if you need to define this, you have to special case it for every possible API in MaD
39+ none ( )
40+ }
41+ }
42+ }
You can’t perform that action at this time.
0 commit comments