Skip to content

Commit d6cccd6

Browse files
committed
Bugfix: Treat HTTP body as UTF-8.
1 parent 26e4e32 commit d6cccd6

3 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/main/java/com/muukong/burp/BurpWebRpcRequestHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public HttpRequest getRequest() {
4747
if ( !isModified() )
4848
return request;
4949

50-
final String data = requestEditor.getContents().toString();
50+
final String data = new String(requestEditor.getContents().getBytes(), java.nio.charset.StandardCharsets.UTF_8);
5151

5252
try {
5353
ProtoParser pp = new ProtoParser(data);
@@ -84,7 +84,7 @@ public void setRequestResponse(HttpRequestResponse httpRequestResponse) {
8484
grpcWebRequestResponse = GrpcWebRequestResponse.fromGrpcWebProto(body.getBytes());
8585
}
8686

87-
requestEditor.setContents(ByteArray.byteArray(grpcWebRequestResponse.prettyPrint()));
87+
requestEditor.setContents(ByteArray.byteArray(grpcWebRequestResponse.prettyPrint().getBytes(java.nio.charset.StandardCharsets.UTF_8)));
8888
}
8989

9090
@Override

src/main/java/com/muukong/burp/BurpWebRpcResponseHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public HttpResponse getResponse() {
4949
if ( !isModified() )
5050
return response;
5151

52-
final String data = responseEditor.getContents().toString();
52+
final String data = new String(responseEditor.getContents().getBytes(), java.nio.charset.StandardCharsets.UTF_8);
5353

5454
try {
5555
ProtoParser pp = new ProtoParser(data);
@@ -85,7 +85,7 @@ public void setRequestResponse(HttpRequestResponse httpRequestResponse) {
8585
grpcWebRequestResponse = GrpcWebRequestResponse.fromGrpcWebProto(response.body().getBytes());
8686
}
8787

88-
responseEditor.setContents(ByteArray.byteArray(grpcWebRequestResponse.prettyPrint()));
88+
responseEditor.setContents(ByteArray.byteArray(grpcWebRequestResponse.prettyPrint().getBytes(java.nio.charset.StandardCharsets.UTF_8)));
8989
}
9090

9191
@Override

src/main/java/com/muukong/grpcweb/GrpcWebRequestResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ private boolean tryDecodeBase64Stream(byte[] grpcWebTextBody) {
127127
right = grpcWebTextBody.length;
128128
} else { // trailing header
129129

130-
String headers = new String(grpcWebProto);
130+
String headers = new String(grpcWebProto, java.nio.charset.StandardCharsets.UTF_8);
131131
headers = headers.substring(5, headers.length());
132132

133133

@@ -223,7 +223,7 @@ private void deserializeGrpcWebProto() {
223223
byte[] trailer = new byte[length];
224224
System.arraycopy(grpcMessage, cursor, trailer, 0, length);
225225

226-
String trailerString = new String(trailer);
226+
String trailerString = new String(trailer, java.nio.charset.StandardCharsets.UTF_8);
227227
for (String header : trailerString.split("\r\n")) {
228228
String[] tmp = header.split(":", 2);
229229
if ( tmp.length < 2 ) continue; // skip malformed / empty lines

0 commit comments

Comments
 (0)