Skip to content

Commit 1afa5af

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Java: move version 5 tests to new file and add tests for org.apache.hc.client5.http.classic.methods
1 parent a959564 commit 1afa5af

File tree

2 files changed

+247
-149
lines changed

2 files changed

+247
-149
lines changed
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
import java.io.IOException;
2+
import java.net.URI;
3+
4+
import org.apache.hc.core5.http.HttpHost;
5+
import org.apache.hc.core5.http.Method;
6+
7+
import javax.servlet.ServletException;
8+
import javax.servlet.http.HttpServlet;
9+
import javax.servlet.http.HttpServletRequest;
10+
import javax.servlet.http.HttpServletResponse;
11+
12+
// org.apache.hc.client5.http.async.methods
13+
import org.apache.hc.client5.http.async.methods.BasicHttpRequests;
14+
import org.apache.hc.client5.http.async.methods.ConfigurableHttpRequest;
15+
import org.apache.hc.client5.http.async.methods.SimpleHttpRequest;
16+
import org.apache.hc.client5.http.async.methods.SimpleHttpRequests;
17+
import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder;
18+
19+
// org.apache.hc.client5.http.classic.methods
20+
import org.apache.hc.client5.http.classic.methods.ClassicHttpRequests;
21+
import org.apache.hc.client5.http.classic.methods.HttpDelete;
22+
import org.apache.hc.client5.http.classic.methods.HttpGet;
23+
import org.apache.hc.client5.http.classic.methods.HttpHead;
24+
import org.apache.hc.client5.http.classic.methods.HttpOptions;
25+
import org.apache.hc.client5.http.classic.methods.HttpPatch;
26+
import org.apache.hc.client5.http.classic.methods.HttpPost;
27+
import org.apache.hc.client5.http.classic.methods.HttpPut;
28+
import org.apache.hc.client5.http.classic.methods.HttpTrace;
29+
import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase;
30+
31+
// import org.apache.hc.client5.http.fluent.Request;
32+
// import org.apache.hc.client5.http.protocol.RedirectLocations;
33+
// import org.apache.hc.client5.http.utils.URIUtils;
34+
35+
public class ApacheHttp5SSRF extends HttpServlet {
36+
37+
// org.apache.hc.client5.http.async.methods
38+
protected void doGet1(HttpServletRequest request, HttpServletResponse response)
39+
throws ServletException, IOException {
40+
try {
41+
42+
String uriSink = request.getParameter("uri");
43+
URI uri = new URI(uriSink);
44+
45+
String hostSink = request.getParameter("host");
46+
HttpHost host = new HttpHost(hostSink);
47+
48+
// org.apache.hc.client5.http.async.methods.BasicHttpRequests
49+
BasicHttpRequests.create(Method.CONNECT, host, "path"); // $ SSRF
50+
BasicHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF
51+
BasicHttpRequests.create(Method.CONNECT, uri); // $ SSRF
52+
BasicHttpRequests.create("method", uri.toString()); // $ SSRF
53+
BasicHttpRequests.create("method", uri); // $ SSRF
54+
55+
BasicHttpRequests.delete(host, "path"); // $ SSRF
56+
BasicHttpRequests.delete(uri.toString()); // $ SSRF
57+
BasicHttpRequests.delete(uri); // $ SSRF
58+
59+
BasicHttpRequests.get(host, "path"); // $ SSRF
60+
BasicHttpRequests.get(uri.toString()); // $ SSRF
61+
BasicHttpRequests.get(uri); // $ SSRF
62+
63+
BasicHttpRequests.head(host, "path"); // $ SSRF
64+
BasicHttpRequests.head(uri.toString()); // $ SSRF
65+
BasicHttpRequests.head(uri); // $ SSRF
66+
67+
BasicHttpRequests.options(host, "path"); // $ SSRF
68+
BasicHttpRequests.options(uri.toString()); // $ SSRF
69+
BasicHttpRequests.options(uri); // $ SSRF
70+
71+
BasicHttpRequests.patch(host, "path"); // $ SSRF
72+
BasicHttpRequests.patch(uri.toString()); // $ SSRF
73+
BasicHttpRequests.patch(uri); // $ SSRF
74+
75+
BasicHttpRequests.post(host, "path"); // $ SSRF
76+
BasicHttpRequests.post(uri.toString()); // $ SSRF
77+
BasicHttpRequests.post(uri); // $ SSRF
78+
79+
BasicHttpRequests.put(host, "path"); // $ SSRF
80+
BasicHttpRequests.put(uri.toString()); // $ SSRF
81+
BasicHttpRequests.put(uri); // $ SSRF
82+
83+
BasicHttpRequests.trace(host, "path"); // $ SSRF
84+
BasicHttpRequests.trace(uri.toString()); // $ SSRF
85+
BasicHttpRequests.trace(uri); // $ SSRF
86+
87+
// org.apache.hc.client5.http.async.methods.ConfigurableHttpRequest
88+
new ConfigurableHttpRequest("method", host, "path"); // $ SSRF
89+
new ConfigurableHttpRequest("method", uri); // $ SSRF
90+
91+
// org.apache.hc.client5.http.async.methods.SimpleHttpRequest
92+
new SimpleHttpRequest(Method.CONNECT, host, "path"); // $ SSRF
93+
new SimpleHttpRequest(Method.CONNECT, uri); // $ SSRF
94+
new SimpleHttpRequest("method", host, "path"); // $ SSRF
95+
new SimpleHttpRequest("method", uri); // $ SSRF
96+
97+
SimpleHttpRequest.create(Method.CONNECT, host, "path"); // $ SSRF
98+
SimpleHttpRequest.create(Method.CONNECT, uri); // $ SSRF
99+
SimpleHttpRequest.create("method", uri.toString()); // $ SSRF
100+
SimpleHttpRequest.create("method", uri); // $ SSRF
101+
102+
// org.apache.hc.client5.http.async.methods.SimpleHttpRequests
103+
SimpleHttpRequests.create(Method.CONNECT, host, "path"); // $ SSRF
104+
SimpleHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF
105+
SimpleHttpRequests.create(Method.CONNECT, uri); // $ SSRF
106+
SimpleHttpRequests.create("method", uri.toString()); // $ SSRF
107+
SimpleHttpRequests.create("method", uri); // $ SSRF
108+
109+
SimpleHttpRequests.delete(host, "path"); // $ SSRF
110+
SimpleHttpRequests.delete(uri.toString()); // $ SSRF
111+
SimpleHttpRequests.delete(uri); // $ SSRF
112+
113+
SimpleHttpRequests.get(host, "path"); // $ SSRF
114+
SimpleHttpRequests.get(uri.toString()); // $ SSRF
115+
SimpleHttpRequests.get(uri); // $ SSRF
116+
117+
SimpleHttpRequests.head(host, "path"); // $ SSRF
118+
SimpleHttpRequests.head(uri.toString()); // $ SSRF
119+
SimpleHttpRequests.head(uri); // $ SSRF
120+
121+
SimpleHttpRequests.options(host, "path"); // $ SSRF
122+
SimpleHttpRequests.options(uri.toString()); // $ SSRF
123+
SimpleHttpRequests.options(uri); // $ SSRF
124+
125+
SimpleHttpRequests.patch(host, "path"); // $ SSRF
126+
SimpleHttpRequests.patch(uri.toString()); // $ SSRF
127+
SimpleHttpRequests.patch(uri); // $ SSRF
128+
129+
SimpleHttpRequests.post(host, "path"); // $ SSRF
130+
SimpleHttpRequests.post(uri.toString()); // $ SSRF
131+
SimpleHttpRequests.post(uri); // $ SSRF
132+
133+
SimpleHttpRequests.put(host, "path"); // $ SSRF
134+
SimpleHttpRequests.put(uri.toString()); // $ SSRF
135+
SimpleHttpRequests.put(uri); // $ SSRF
136+
137+
SimpleHttpRequests.trace(host, "path"); // $ SSRF
138+
SimpleHttpRequests.trace(uri.toString()); // $ SSRF
139+
SimpleHttpRequests.trace(uri); // $ SSRF
140+
141+
// org.apache.hc.client5.http.async.methods.SimpleRequestBuilder
142+
SimpleRequestBuilder.delete(uri.toString()); // $ SSRF
143+
SimpleRequestBuilder.delete(uri); // $ SSRF
144+
145+
SimpleRequestBuilder.get(uri.toString()); // $ SSRF
146+
SimpleRequestBuilder.get(uri); // $ SSRF
147+
148+
SimpleRequestBuilder.head(uri.toString()); // $ SSRF
149+
SimpleRequestBuilder.head(uri); // $ SSRF
150+
151+
SimpleRequestBuilder.options(uri.toString()); // $ SSRF
152+
SimpleRequestBuilder.options(uri); // $ SSRF
153+
154+
SimpleRequestBuilder.patch(uri.toString()); // $ SSRF
155+
SimpleRequestBuilder.patch(uri); // $ SSRF
156+
157+
SimpleRequestBuilder.post(uri.toString()); // $ SSRF
158+
SimpleRequestBuilder.post(uri); // $ SSRF
159+
160+
SimpleRequestBuilder.put(uri.toString()); // $ SSRF
161+
SimpleRequestBuilder.put(uri); // $ SSRF
162+
163+
SimpleRequestBuilder.get().setHttpHost(host); // $ SSRF
164+
165+
SimpleRequestBuilder.get().setUri(uri.toString()); // $ SSRF
166+
SimpleRequestBuilder.get().setUri(uri); // $ SSRF
167+
168+
SimpleRequestBuilder.trace(uri.toString()); // $ SSRF
169+
SimpleRequestBuilder.trace(uri); // $ SSRF
170+
171+
} catch (Exception e) {
172+
// TODO: handle exception
173+
}
174+
}
175+
176+
// org.apache.hc.client5.http.classic.methods
177+
protected void doGet2(HttpServletRequest request, HttpServletResponse response)
178+
throws ServletException, IOException {
179+
try {
180+
181+
String uriSink = request.getParameter("uri");
182+
URI uri = new URI(uriSink);
183+
184+
// org.apache.hc.client5.http.classic.methods.ClassicHttpRequests
185+
ClassicHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF
186+
ClassicHttpRequests.create(Method.CONNECT, uri); // $ SSRF
187+
ClassicHttpRequests.create("method", uri.toString()); // $ SSRF
188+
ClassicHttpRequests.create("method", uri); // $ SSRF
189+
190+
BasicHttpRequests.delete(uri.toString()); // $ SSRF
191+
BasicHttpRequests.delete(uri); // $ SSRF
192+
193+
ClassicHttpRequests.get(uri.toString()); // $ SSRF
194+
ClassicHttpRequests.get(uri); // $ SSRF
195+
196+
ClassicHttpRequests.head(uri.toString()); // $ SSRF
197+
ClassicHttpRequests.head(uri); // $ SSRF
198+
199+
ClassicHttpRequests.options(uri.toString()); // $ SSRF
200+
ClassicHttpRequests.options(uri); // $ SSRF
201+
202+
ClassicHttpRequests.patch(uri.toString()); // $ SSRF
203+
ClassicHttpRequests.patch(uri); // $ SSRF
204+
205+
ClassicHttpRequests.post(uri.toString()); // $ SSRF
206+
ClassicHttpRequests.post(uri); // $ SSRF
207+
208+
ClassicHttpRequests.put(uri.toString()); // $ SSRF
209+
ClassicHttpRequests.put(uri); // $ SSRF
210+
211+
ClassicHttpRequests.trace(uri.toString()); // $ SSRF
212+
ClassicHttpRequests.trace(uri); // $ SSRF
213+
214+
// org.apache.hc.client5.http.classic.methods.HttpDelete through HttpTrace
215+
new HttpDelete(uri.toString()); // $ SSRF
216+
new HttpDelete(uri); // $ SSRF
217+
218+
new HttpGet(uri.toString()); // $ SSRF
219+
new HttpGet(uri); // $ SSRF
220+
221+
new HttpHead(uri.toString()); // $ SSRF
222+
new HttpHead(uri); // $ SSRF
223+
224+
new HttpOptions(uri.toString()); // $ SSRF
225+
new HttpOptions(uri); // $ SSRF
226+
227+
new HttpPatch(uri.toString()); // $ SSRF
228+
new HttpPatch(uri); // $ SSRF
229+
230+
new HttpPost(uri.toString()); // $ SSRF
231+
new HttpPost(uri); // $ SSRF
232+
233+
new HttpPut(uri.toString()); // $ SSRF
234+
new HttpPut(uri); // $ SSRF
235+
236+
new HttpTrace(uri.toString()); // $ SSRF
237+
new HttpTrace(uri); // $ SSRF
238+
239+
// org.apache.hc.client5.http.classic.methods.HttpUriRequestBase
240+
new HttpUriRequestBase("method", uri); // $ SSRF
241+
242+
} catch (Exception e) {
243+
// TODO: handle exception
244+
}
245+
}
246+
}

0 commit comments

Comments
 (0)