Skip to content

Commit b80d05a

Browse files
Update README.md files
1 parent ba2eae3 commit b80d05a

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

CustomAction/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ Please do not manually edit this file, or include any changes to this file in pu
55
-->
66
# Custom Actions
77
Documentation: [Custom actions](https://portswigger.net/burp/documentation/desktop/tools/repeater/http-messages/custom-actions)
8+
## [BypassFirstRequestValidation.bambda](https://github.com/PortSwigger/bambdas/blob/main/CustomAction/BypassFirstRequestValidation.bambda)
9+
### This hides your repeater request behind an innocent GET request. It's useful for bypassing server-level validation sometimes.
10+
#### Author: James Kettle (https://github.com/albinowax)
11+
```java
12+
var connectionId = utilities().randomUtils().randomString(8);
13+
var options = RequestOptions.requestOptions().withConnectionId(connectionId).withHttpMode(HttpMode.HTTP_1);
14+
15+
// Send a simple GET / HTTP/1.1 to the target as the precusor request
16+
var url = requestResponse.request().url();
17+
var precursorRequest = HttpRequest.httpRequestFromUrl(url);
18+
precursorRequest = precursorRequest.withPath("/").withHeader("Connection", "keep-alive");
19+
20+
// Send the attack in the repeater, and update the response pane
21+
api().http().sendRequest(precursorRequest, options);
22+
var response = api().http().sendRequest(requestResponse.request(), options);
23+
httpEditor.responsePane().set(response.response().toByteArray());
24+
25+
```
826
## [CalculateResponseMetadata.bambda](https://github.com/PortSwigger/bambdas/blob/main/CustomAction/CalculateResponseMetadata.bambda)
927
### Calculate response metadata.
1028
#### Author: PortSwigger

0 commit comments

Comments
 (0)