Skip to content

Commit cb99e17

Browse files
committed
Split and rename JavaNetHttp and ApacheHttp tests for consistency
1 parent 6c4a909 commit cb99e17

File tree

3 files changed

+109
-85
lines changed

3 files changed

+109
-85
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import java.io.IOException;
2+
import java.net.URI;
3+
4+
import org.apache.http.client.methods.HttpGet;
5+
import org.apache.http.client.methods.HttpPost;
6+
import org.apache.http.client.methods.HttpPut;
7+
import org.apache.http.client.methods.HttpDelete;
8+
import org.apache.http.client.methods.HttpHead;
9+
import org.apache.http.client.methods.HttpOptions;
10+
import org.apache.http.client.methods.HttpTrace;
11+
import org.apache.http.client.methods.HttpPatch;
12+
import org.apache.http.client.methods.RequestBuilder;
13+
import org.apache.http.message.BasicHttpRequest;
14+
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
15+
import org.apache.http.message.BasicRequestLine;
16+
import javax.servlet.ServletException;
17+
import javax.servlet.http.HttpServlet;
18+
import javax.servlet.http.HttpServletRequest;
19+
import javax.servlet.http.HttpServletResponse;
20+
21+
public class ApacheHttpSSRF extends HttpServlet {
22+
23+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
24+
throws ServletException, IOException {
25+
try {
26+
27+
String sink = request.getParameter("uri");
28+
URI uri = new URI(sink);
29+
30+
HttpGet httpGet = new HttpGet(uri); // $ SSRF
31+
HttpGet httpGet2 = new HttpGet();
32+
httpGet2.setURI(uri); // $ SSRF
33+
34+
new HttpHead(uri); // $ SSRF
35+
new HttpPost(uri); // $ SSRF
36+
new HttpPut(uri); // $ SSRF
37+
new HttpDelete(uri); // $ SSRF
38+
new HttpOptions(uri); // $ SSRF
39+
new HttpTrace(uri); // $ SSRF
40+
new HttpPatch(uri); // $ SSRF
41+
42+
new BasicHttpRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ SSRF
43+
new BasicHttpRequest("GET", uri.toString()); // $ SSRF
44+
new BasicHttpRequest("GET", uri.toString(), null); // $ SSRF
45+
46+
new BasicHttpEntityEnclosingRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ SSRF
47+
new BasicHttpEntityEnclosingRequest("GET", uri.toString()); // $ SSRF
48+
new BasicHttpEntityEnclosingRequest("GET", uri.toString(), null); // $ SSRF
49+
50+
RequestBuilder.get(uri); // $ SSRF
51+
RequestBuilder.post(uri); // $ SSRF
52+
RequestBuilder.put(uri); // $ SSRF
53+
RequestBuilder.delete(uri); // $ SSRF
54+
RequestBuilder.options(uri); // $ SSRF
55+
RequestBuilder.head(uri); // $ SSRF
56+
RequestBuilder.trace(uri); // $ SSRF
57+
RequestBuilder.patch(uri); // $ SSRF
58+
RequestBuilder.get("").setUri(uri); // $ SSRF
59+
60+
} catch (Exception e) {
61+
// TODO: handle exception
62+
}
63+
}
64+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import java.io.IOException;
2+
import java.net.Proxy;
3+
import java.net.SocketAddress;
4+
import java.net.URI;
5+
import java.net.URL;
6+
import java.net.URLConnection;
7+
import java.net.http.HttpClient;
8+
import java.net.http.HttpRequest;
9+
import java.net.Proxy.Type;
10+
import java.io.InputStream;
11+
12+
import javax.servlet.ServletException;
13+
import javax.servlet.http.HttpServlet;
14+
import javax.servlet.http.HttpServletRequest;
15+
import javax.servlet.http.HttpServletResponse;
16+
17+
public class JavaNetHttpSSRF extends HttpServlet {
18+
private static final String VALID_URI = "http://lgtm.com";
19+
private HttpClient client = HttpClient.newHttpClient();
20+
21+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
22+
throws ServletException, IOException {
23+
try {
24+
25+
String sink = request.getParameter("uri");
26+
URI uri = new URI(sink);
27+
URI uri2 = new URI("http", sink, "fragement");
28+
URL url1 = new URL(sink);
29+
30+
URLConnection c1 = url1.openConnection(); // $ SSRF
31+
SocketAddress sa = new SocketAddress() {
32+
};
33+
URLConnection c2 = url1.openConnection(new Proxy(Type.HTTP, sa)); // $ SSRF
34+
InputStream c3 = url1.openStream(); // $ SSRF
35+
36+
// java.net.http
37+
HttpClient client = HttpClient.newHttpClient();
38+
HttpRequest request2 = HttpRequest.newBuilder().uri(uri2).build(); // $ SSRF
39+
HttpRequest request3 = HttpRequest.newBuilder(uri).build(); // $ SSRF
40+
41+
} catch (Exception e) {
42+
// TODO: handle exception
43+
}
44+
}
45+
}

java/ql/test/query-tests/security/CWE-918/RequestForgery2.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)