diff --git a/build.gradle b/build.gradle index eb7125d..9ae6a2c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,13 @@ buildscript { repositories { + maven { + url "https://plugins.gradle.org/m2/" + } jcenter() } dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:+' + classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0' } } diff --git a/src/burp/Replacements/Replacement.java b/src/burp/Replacements/Replacement.java index 394f575..815f578 100644 --- a/src/burp/Replacements/Replacement.java +++ b/src/burp/Replacements/Replacement.java @@ -223,10 +223,16 @@ private byte[] updateBurpParam( // This is a hack around binary content causing requests to send private byte[] updateContent(byte[] request) { + IExtensionHelpers helpers = BurpExtender.getHelpers(); + IRequestInfo analyzedRequest = helpers.analyzeRequest(request); + List headers = analyzedRequest.getHeaders(); + byte[] body = Arrays.copyOfRange(request, analyzedRequest.getBodyOffset(), request.length); if (replaceFirst()) { - return Utils.byteArrayRegexReplaceFirst(request, this.match, this.replace); + byte[] updatedBody = Utils.byteArrayRegexReplaceFirst(body, this.match, this.replace); + return helpers.buildHttpMessage(headers, updatedBody); } else { - return Utils.byteArrayRegexReplaceAll(request, this.match, this.replace); + byte[] updatedBody = Utils.byteArrayRegexReplaceAll(body, this.match, this.replace); + return helpers.buildHttpMessage(headers, updatedBody); } }