MCPcopy Create free account
hub / github.com/XF-FS/APIKit / makeHTTPRequest

Method makeHTTPRequest

src/main/java/burp/ui/TargetAPIScan.java:50–89  ·  view source on GitHub ↗
(String url, String headers, String apitype)

Source from the content-addressed store, hash-verified

48 }
49
50 public IHttpRequestResponse makeHTTPRequest(String url, String headers, String apitype) {
51 String[] splitHeader;
52 String basepath;
53 URL path;
54 String method = "GET";
55 LinkedList<String> Headers2 = new LinkedList<String>();
56 byte[] apiRequest = null;
57 try {
58 path = new URL(url);
59 basepath = path.getFile();
60 } catch (MalformedURLException ex) {
61 System.out.println(ex.getMessage());
62 return null;
63 }
64 if (apitype.equals("GraphQLIntrospection")) {
65 JsonObject jsonBody = new JsonObject();
66 jsonBody.add("query", new JsonPrimitive(new String(BurpExtender.getHelpers().base64Decode("cXVlcnkgUXVlcnkgewogICAgX19zY2hlbWEgewogICAgICBxdWVyeVR5cGUgeyBuYW1lIH0KICAgICAgbXV0YXRpb25UeXBlIHsgbmFtZSB9CiAgICAgIHN1YnNjcmlwdGlvblR5cGUgeyBuYW1lIH0KICAgICAgdHlwZXMgewogICAgICAgIC4uLkZ1bGxUeXBlCiAgICAgIH0KICAgICAgZGlyZWN0aXZlcyB7CiAgICAgICAgbmFtZQogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgbG9jYXRpb25zCiAgICAgICAgYXJncyB7CiAgICAgICAgICAuLi5JbnB1dFZhbHVlCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQoKICBmcmFnbWVudCBGdWxsVHlwZSBvbiBfX1R5cGUgewogICAga2luZAogICAgbmFtZQogICAgZGVzY3JpcHRpb24KICAgIGZpZWxkcyhpbmNsdWRlRGVwcmVjYXRlZDogdHJ1ZSkgewogICAgICBuYW1lCiAgICAgIGRlc2NyaXB0aW9uCiAgICAgIGFyZ3MgewogICAgICAgIC4uLklucHV0VmFsdWUKICAgICAgfQogICAgICB0eXBlIHsKICAgICAgICAuLi5UeXBlUmVmCiAgICAgIH0KICAgICAgaXNEZXByZWNhdGVkCiAgICAgIGRlcHJlY2F0aW9uUmVhc29uCiAgICB9CiAgICBpbnB1dEZpZWxkcyB7CiAgICAgIC4uLklucHV0VmFsdWUKICAgIH0KICAgIGludGVyZmFjZXMgewogICAgICAuLi5UeXBlUmVmCiAgICB9CiAgICBlbnVtVmFsdWVzKGluY2x1ZGVEZXByZWNhdGVkOiB0cnVlKSB7CiAgICAgIG5hbWUKICAgICAgZGVzY3JpcHRpb24KICAgICAgaXNEZXByZWNhdGVkCiAgICAgIGRlcHJlY2F0aW9uUmVhc29uCiAgICB9CiAgICBwb3NzaWJsZVR5cGVzIHsKICAgICAgLi4uVHlwZVJlZgogICAgfQogIH0KCiAgZnJhZ21lbnQgSW5wdXRWYWx1ZSBvbiBfX0lucHV0VmFsdWUgewogICAgbmFtZQogICAgZGVzY3JpcHRpb24KICAgIHR5cGUgeyAuLi5UeXBlUmVmIH0KICAgIGRlZmF1bHRWYWx1ZQogIH0KCiAgZnJhZ21lbnQgVHlwZVJlZiBvbiBfX1R5cGUgewogICAga2luZAogICAgbmFtZQogICAgb2ZUeXBlIHsKICAgICAga2luZAogICAgICBuYW1lCiAgICAgIG9mVHlwZSB7CiAgICAgICAga2luZAogICAgICAgIG5hbWUKICAgICAgICBvZlR5cGUgewogICAgICAgICAga2luZAogICAgICAgICAgbmFtZQogICAgICAgICAgb2ZUeXBlIHsKICAgICAgICAgICAga2luZAogICAgICAgICAgICBuYW1lCiAgICAgICAgICAgIG9mVHlwZSB7CiAgICAgICAgICAgICAga2luZAogICAgICAgICAgICAgIG5hbWUKICAgICAgICAgICAgICBvZlR5cGUgewogICAgICAgICAgICAgICAga2luZAogICAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICAgICAgb2ZUeXBlIHsKICAgICAgICAgICAgICAgICAga2luZAogICAgICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQ=="))));
67 apiRequest = new Gson().toJson(jsonBody).getBytes();
68 method = "POST";
69 if (!basepath.equals("/") && basepath.endsWith("/")) {
70 basepath = basepath.substring(0, basepath.length() - 1);
71 }
72 }
73 Headers2.add(method + " " + basepath + " HTTP/1.1");
74 String port = path.getPort() == -1 ? (path.getProtocol().equalsIgnoreCase("https") ? "443" : "80") : Integer.toString(path.getPort());
75 Headers2.add("Host: " + path.getHost() + ":" + port);
76 Headers2.add("User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36");
77 for (String header : splitHeader = headers.split("\r\n")) {
78 if (splitHeader.equals("")) continue;
79 Headers2.add(header);
80 }
81 Headers2.add("Content-Type: application/json");
82 Headers2.add("Accept: */*");
83 Headers2.add("Connection: close");
84 HttpRequestFormator.TrimDupHeader(Headers2);
85 byte[] newRequest = BurpExtender.getHelpers().buildHttpMessage(Headers2, apiRequest);
86 IHttpService httpService = BurpExtender.getHelpers().buildHttpService(path.getHost(), (int) Integer.valueOf(port), path.getProtocol());
87 IHttpRequestResponse ihttprequestresponse = BurpExtender.getCallbacks().makeHttpRequest(httpService, newRequest);
88 return ihttprequestresponse;
89 }
90}
91

Callers 1

runMethod · 0.95

Calls 5

getHelpersMethod · 0.95
TrimDupHeaderMethod · 0.95
getCallbacksMethod · 0.95
addMethod · 0.80
makeHttpRequestMethod · 0.45

Tested by

no test coverage detected