Skip to content

Commit ddd9ed2

Browse files
GET requests with bodies won't be truncated
1 parent 25e04a4 commit ddd9ed2

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main/java/burp/BurpExtender.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,8 @@ public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequ
470470

471471
java.util.List<String> headers = request.getHeaders();
472472

473-
if (headers.stream().anyMatch((str -> str.trim().toLowerCase().contains("x-amz-date")))) {
473+
if (headers.stream().anyMatch((str -> str.trim().toLowerCase().contains("x-amz-date"))) &&
474+
headers.stream().anyMatch((str -> str.trim().toLowerCase().contains("authorization")))) {
474475
String[] profile = this.profiles.get(Menu.getEnabledProfile());
475476
byte[] signedRequest;
476477
if (dynamicRegionAndService.isSelected()) {

src/main/java/burp/Utility.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ static byte[] signRequest(IHttpRequestResponse messageInfo,
102102
String notUnicode = "[^\\u0000-\\u007F]+";
103103
String payloadHash;
104104

105-
if (!requestInfo.getMethod().equals("GET")){
105+
if (!requestInfo.getMethod().equals("GET") || requestInfo.getBodyOffset() > 0){
106106

107107
int bodyOffset = requestInfo.getBodyOffset();
108108
body = hexToString(bytesToHex(Arrays.copyOfRange(request, bodyOffset, request.length)));
@@ -119,6 +119,7 @@ static byte[] signRequest(IHttpRequestResponse messageInfo,
119119
}
120120
body = sanitize;
121121
}
122+
pw.println(Base64.getEncoder().encodeToString(body.getBytes("utf-8")));
122123
payloadHash = Hashing.sha256().hashString(body, StandardCharsets.UTF_8).toString().toLowerCase();
123124

124125
} else {
@@ -273,7 +274,7 @@ private static String getSignedHeaders(String authHeader){
273274
signedHeaders = matcher.group(1);
274275
}
275276

276-
return signedHeaders;
277+
return signedHeaders;
277278

278279
}
279280
private static String bytesToHex(byte[] bytes) {

0 commit comments

Comments
 (0)