@@ -20,7 +20,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
20
20
// BAD: a request parameter is incorporated without validation into a Http
21
21
// request
22
22
HttpRequest r = HttpRequest .newBuilder (uri ).build (); // $ SSRF
23
- client .send (r , null );
23
+ client .send (r , null ); // $ SSRF
24
24
25
25
// GOOD: sanitisation by concatenation with a prefix that prevents targeting an arbitrary host.
26
26
// We test a few different ways of sanitisation: via string conctentation (perhaps nested),
@@ -74,51 +74,51 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
74
74
// place to sanitise user input:
75
75
String unsafeUri3 = request .getParameter ("baduri3" ) + "https://example.com/" ;
76
76
HttpRequest unsafer3 = HttpRequest .newBuilder (new URI (unsafeUri3 )).build (); // $ SSRF
77
- client .send (unsafer3 , null );
77
+ client .send (unsafer3 , null ); // $ SSRF
78
78
79
79
String unsafeUri4 = ("someprefix" + request .getParameter ("baduri4" )) + "https://example.com/" ;
80
80
HttpRequest unsafer4 = HttpRequest .newBuilder (new URI (unsafeUri4 )).build (); // $ SSRF
81
- client .send (unsafer4 , null );
81
+ client .send (unsafer4 , null ); // $ SSRF
82
82
83
83
StringBuilder unsafeUri5 = new StringBuilder ();
84
84
unsafeUri5 .append (request .getParameter ("baduri5" )).append ("https://example.com/" );
85
85
HttpRequest unsafer5 = HttpRequest .newBuilder (new URI (unsafeUri5 .toString ())).build (); // $ SSRF
86
- client .send (unsafer5 , null );
86
+ client .send (unsafer5 , null ); // $ SSRF
87
87
88
88
StringBuilder unafeUri5a = new StringBuilder (request .getParameter ("uri5a" ));
89
89
unafeUri5a .append ("https://example.com/" );
90
90
HttpRequest unsafer5a = HttpRequest .newBuilder (new URI (unafeUri5a .toString ())).build (); // $ SSRF
91
- client .send (unsafer5a , null );
91
+ client .send (unsafer5a , null ); // $ SSRF
92
92
93
93
StringBuilder unsafeUri5b = (new StringBuilder (request .getParameter ("uri5b" ))).append ("dir/" );
94
94
unsafeUri5b .append ("https://example.com/" );
95
95
HttpRequest unsafer5b = HttpRequest .newBuilder (new URI (unsafeUri5b .toString ())).build (); // $ SSRF
96
- client .send (unsafer5b , null );
96
+ client .send (unsafer5b , null ); // $ SSRF
97
97
98
98
StringBuilder unsafeUri5c = (new StringBuilder ("https" )).append (request .getParameter ("uri5c" ));
99
99
unsafeUri5c .append ("://example.com/dir/" );
100
100
HttpRequest unsafer5c = HttpRequest .newBuilder (new URI (unsafeUri5c .toString ())).build (); // $ SSRF
101
- client .send (unsafer5c , null );
101
+ client .send (unsafer5c , null ); // $ SSRF
102
102
103
103
String unsafeUri6 = String .format ("%shttps://example.com/" , request .getParameter ("baduri6" ));
104
104
HttpRequest unsafer6 = HttpRequest .newBuilder (new URI (unsafeUri6 )).build (); // $ SSRF
105
- client .send (unsafer6 , null );
105
+ client .send (unsafer6 , null ); // $ SSRF
106
106
107
107
String unsafeUri7 = String .format ("%s/%s" , request .getParameter ("baduri7" ), "https://example.com" );
108
108
HttpRequest unsafer7 = HttpRequest .newBuilder (new URI (unsafeUri7 )).build (); // $ SSRF
109
- client .send (unsafer7 , null );
109
+ client .send (unsafer7 , null ); // $ SSRF
110
110
111
111
String unsafeUri8 = String .format ("%s%s" , request .getParameter ("baduri8" ), "https://example.com/" );
112
112
HttpRequest unsafer8 = HttpRequest .newBuilder (new URI (unsafeUri8 )).build (); // $ SSRF
113
- client .send (unsafer8 , null );
113
+ client .send (unsafer8 , null ); // $ SSRF
114
114
115
115
String unsafeUri9 = request .getParameter ("baduri9" ) + "/" + String .format ("http://%s" , "myserver.com" );
116
116
HttpRequest unsafer9 = HttpRequest .newBuilder (new URI (unsafeUri9 )).build (); // $ SSRF
117
- client .send (unsafer9 , null );
117
+ client .send (unsafer9 , null ); // $ SSRF
118
118
119
119
String unsafeUri10 = String .format ("%s://%s:%s%s" , "http" , "myserver.com" , "80" , request .getParameter ("baduri10" ));
120
120
HttpRequest unsafer10 = HttpRequest .newBuilder (new URI (unsafeUri10 )).build (); // $ SSRF
121
- client .send (unsafer10 , null );
121
+ client .send (unsafer10 , null ); // $ SSRF
122
122
} catch (Exception e ) {
123
123
// TODO: handle exception
124
124
}
0 commit comments