Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
76a5d38
Create DetectWeakReferrerPolicy.bambda
ctflearner Dec 18, 2024
f588d82
Create DetectWeakXSSProtectionHeader.bambda
ctflearner Dec 18, 2024
b97740b
Update DetectWeakReferrerPolicy.bambda
ctflearner Jan 2, 2025
d63d269
Update DetectWeakXSSProtectionHeader.bambda
ctflearner Jan 2, 2025
87bcb70
Merge pull request #83 from ctflearner/DetectWeakReferrer
PortSwiggerWiener Jan 2, 2025
6d4d097
Update DetectWeakXSSProtectionHeader.bambda
Hannah-PortSwigger Jan 8, 2025
bdfc1f2
Merge pull request #84 from ctflearner/DetectWeakXSSProtection
PortSwiggerWiener Jan 9, 2025
822faa2
Add example to search for graphql mutations
drwetter Jan 21, 2025
783236a
fix typo
drwetter Jan 21, 2025
c83c5d2
Address reviews
drwetter Jan 31, 2025
727abe6
Merge pull request #87 from drwetter/SearchGraphQLMutation
Hannah-PortSwigger Feb 5, 2025
f5107e3
Create RemoveDirtyPackageFromHistory
y1shiny1shin Mar 11, 2025
bbc4301
Create RemoveDirtyPackageHistory
y1shiny1shin Mar 11, 2025
36f0cfd
Update and rename RemoveDirtyPackageFromHistory.bambda to ExcludeComm…
y1shiny1shin Mar 12, 2025
d916bc0
Merge pull request #91 from y1shiny1shin/RemoveDirtyPackageHistory
ibz-portswigger Mar 12, 2025
c86f8b4
2025.2 Bambda Library Update (#93)
yijun-hu-portswigger Mar 31, 2025
664bb0e
Add Bambda library template bambdas.
Hannah-PortSwigger Apr 1, 2025
b01590d
Update pull_request_template message.
Hannah-PortSwigger Apr 1, 2025
e931ceb
Update actions to v4 and use Java 21.
Hannah-PortSwigger Apr 1, 2025
44dc1b6
Merge pull request #95 from PortSwigger/workflow-fix
ibz-portswigger Apr 3, 2025
87062ea
Merge pull request #94 from PortSwigger/add-templates
ibz-portswigger Apr 3, 2025
71a178a
Merge pull request #96 from PortSwigger/template-update
ps-porpoise Apr 8, 2025
3db9f68
Add custom actions (#97)
ngregoire Apr 14, 2025
18ef7f1
Update README.md (#98)
Hannah-PortSwigger Apr 17, 2025
7c32b9c
Added custom column bambda to identify slow responses (#101)
l4n73rn Apr 24, 2025
c3316c5
Add files via upload (#102)
albinowax Apr 24, 2025
5d59dae
Adding a custom action to take and edit screenshots from Burp. (#103)
mdoyhenard Apr 25, 2025
b85d131
Add support for custom actions to Bambda checker (#104)
ps-porpoise Apr 29, 2025
1b84f45
Add custom actions to Bambda checker. (#106)
ps-porpoise Apr 29, 2025
4427997
Fix javadoc (#107)
Hannah-PortSwigger Apr 29, 2025
c289c95
Javadoc formatting.
Hannah-PortSwigger Apr 29, 2025
aaf4283
Update README.md files
github-actions[bot] Apr 29, 2025
a678d86
Add screenshot custom action (#109)
mdoyhenard May 6, 2025
67ea24b
Update CONTRIBUTING.md for Bambda Library
yijun-hu-portswigger May 6, 2025
dd60053
Merge pull request #110 from PortSwigger/contributing-md-doc-update-f…
ibz-portswigger May 8, 2025
bc7af4a
Update README.md files
github-actions[bot] May 8, 2025
a2e45dc
Create DetectCSPReportOnlyHeader.bambda (#85)
ctflearner May 14, 2025
92ac230
Add sitemap filter (#112)
ngregoire Jun 4, 2025
8c905dc
Update README.md files
github-actions[bot] Jun 4, 2025
b6a9f0c
add RepeaterClip Bambdas (#113)
0xd0ug Jun 12, 2025
c13bbfd
Provide validation workflow. (#116)
Hannah-PortSwigger Jun 25, 2025
fefa20d
Update README.md files
github-actions[bot] Jun 25, 2025
b6f5cff
Rename job. (#117)
Hannah-PortSwigger Jun 25, 2025
85e3900
Update CONTRIBUTING.md (#111)
Hannah-PortSwigger Jun 25, 2025
771dc60
Hash Highlight Bambda (#114)
ErebusC Jun 25, 2025
1e77094
Cookies custom actions (#118)
d0ge Jul 4, 2025
3235b65
Update README.md files
github-actions[bot] Jul 4, 2025
c1b26eb
Added AI Hacking Assistant Bambda.
hackvertor Jul 9, 2025
c39f346
Update README.md
Eleanor739 Jul 10, 2025
bcaec82
Update CONTRIBUTING.md
Eleanor739 Jul 10, 2025
45364d3
Merge pull request #120 from Eleanor739/main
Eleanor739 Jul 17, 2025
628e5ff
Add files via upload
righettod Jul 18, 2025
2bfe910
Added AI Hacking Assistant Bambda. (#119)
hackvertor Jul 23, 2025
0536ade
Merge pull request #121 from righettod/http_trace_bambda_add
ps-porpoise Jul 23, 2025
4d85522
Update README.md files
github-actions[bot] Jul 23, 2025
a1093e6
Add "smuggling or pipelining"
albinowax Aug 14, 2025
7fef935
Merge pull request #123 from albinowax/main
ps-porpoise Aug 14, 2025
4994516
Update SmugglingOrPipelining.bambda (#124)
albinowax Aug 14, 2025
b461eb2
Update README.md files
github-actions[bot] Aug 14, 2025
e69a358
Hide requests which do not have responses (#122)
digininja Aug 18, 2025
7de584f
Update README.md files
github-actions[bot] Aug 18, 2025
ad06e41
Add files via upload
albinowax Aug 19, 2025
464a57d
Update RetryUntilSuccess.bambda
albinowax Aug 19, 2025
1b59da1
Update RetryUntilSuccess.bambda
albinowax Aug 19, 2025
db95c05
Merge branch 'PortSwigger:main' into main
hackvertor Aug 19, 2025
0445d3f
Added inline style exfiltrator
hackvertor Aug 19, 2025
a9b0ee0
Fixed formatting
hackvertor Aug 19, 2025
43c401c
Fixed indent and typo
hackvertor Aug 19, 2025
9fb2767
Merge pull request #126 from hackvertor/main
ps-porpoise Aug 19, 2025
2ab5de3
Fix workflows (#127)
Hannah-PortSwigger Aug 19, 2025
ae5feb1
Update README.md files
github-actions[bot] Aug 19, 2025
5502667
Update RetryUntilSuccess.bambda
albinowax Aug 19, 2025
5c77356
Merge pull request #125 from albinowax/main
ps-porpoise Aug 19, 2025
838ca33
Update README.md files
github-actions[bot] Aug 19, 2025
db51249
Fixed formatting again.
hackvertor Aug 21, 2025
63feea4
Merge pull request #129 from hackvertor/main
ps-porpoise Aug 21, 2025
191964a
Update README.md files
github-actions[bot] Aug 21, 2025
4104ff2
For new Bambdas, create a Discord notification. (#130)
Hannah-PortSwigger Aug 21, 2025
a258fec
Changed vector generation to use plain strings. Rename domain to URL …
hackvertor Aug 27, 2025
656cd3a
Update URL in SmugglingOrPipelining.bambda to fix 404
DEBARsec Sep 8, 2025
17c8d45
Merge pull request #133 from DEBARsec/main
ps-porpoise Sep 8, 2025
bfe7076
Update CookiePrefixBypass.bambda (#135)
Hannah-PortSwigger Sep 10, 2025
2df3c9b
Custom scan check example.
Hannah-PortSwigger Sep 12, 2025
03ca01f
HTTP cookie prefix bypass custom scan check
d0ge Sep 15, 2025
c6a34f1
Added Email Splitting scan checks using client & default Collaborator.
hackvertor Sep 15, 2025
cf35dcc
Update the Bambda checker version to 1.5. (#138)
PortSwiggerRussell Sep 15, 2025
ab59356
Updated description of scan check
hackvertor Sep 15, 2025
daee14b
Add Detect TRACE method Bambda. (#140)
PortSwiggerRussell Sep 15, 2025
4ebc09b
Add SSTI sampler Bambda. (#142)
PortSwiggerRussell Sep 15, 2025
56540e1
Add Server-side prototype pollution Bambda. (#141)
PortSwiggerRussell Sep 15, 2025
8594125
Update README.md files
github-actions[bot] Sep 15, 2025
b2cb353
Patch Bambda checker 1.5 for README generation. (#143)
PortSwiggerRussell Sep 15, 2025
30f0d28
Update README.md files
github-actions[bot] Sep 15, 2025
d71b820
Add CORS misconfiguration Bambda. (#139)
PortSwiggerRussell Sep 18, 2025
fd128ee
Update README.md files
github-actions[bot] Sep 18, 2025
f26a124
Add EmailFromJWT.bambda (#144)
Xib3rR4dAr Sep 23, 2025
fc657dd
Merge pull request #137 from hackvertor/main
ps-porpoise Sep 23, 2025
ae4fbb5
Merge pull request #136 from d0ge/cookie-prefix-bypass-custom-scan-check
ps-porpoise Sep 23, 2025
d774b62
This Custom Action creates a random string in the output log or repla…
hackvertor Sep 25, 2025
3f7f5ab
Updated indent
hackvertor Sep 26, 2025
072e602
Updated indent
hackvertor Sep 26, 2025
512f343
Merge pull request #145 from hackvertor/main
ps-porpoise Sep 30, 2025
4804df5
Update README.md files
github-actions[bot] Oct 1, 2025
4c1201e
Update fetch depth for GitHub workflow. (#146)
Hannah-PortSwigger Oct 1, 2025
16c6511
Update webhook messages. (#147)
Hannah-PortSwigger Oct 1, 2025
53de3c9
Update README.md (#148)
Eleanor739 Oct 2, 2025
78e12b1
Update CONTRIBUTING.md (#149)
Eleanor739 Oct 2, 2025
8738813
Refactored Hacking Assistant to separate user prompts from untrusted …
hackvertor Oct 14, 2025
1ccbcd9
Update README.md files
github-actions[bot] Oct 14, 2025
ba2eae3
Add BypassFirstRequestValidation (#151)
Hannah-PortSwigger Oct 16, 2025
b80d05a
Update README.md files
github-actions[bot] Oct 16, 2025
28060df
Add CVE-2025-55182 React2Shell bambda (#153)
djpaterson Dec 4, 2025
b8884d5
Update CVE-2025-55182CVE-2025-66478-React2Shell.bambda (#155)
Hannah-PortSwigger Dec 11, 2025
3310666
Update README.md files
github-actions[bot] Dec 11, 2025
c0d936f
Webhook messages (#156)
Hannah-PortSwigger Dec 11, 2025
1fe9b39
Create FakeResponseGenerator (#157)
Hannah-PortSwigger Dec 11, 2025
d75ce32
Update README.md files
github-actions[bot] Dec 11, 2025
d880a64
Adds a CSP bypass Custom Action (#158)
hackvertor Dec 16, 2025
af5e5fe
Update README.md files
github-actions[bot] Dec 16, 2025
0befbb0
Update formatting of CSP Bypass bambda (#159)
rsomers-portswigger Dec 16, 2025
5b833a3
Update README.md files
github-actions[bot] Dec 16, 2025
2d01ae1
Webhook refactor (#160)
Hannah-PortSwigger Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
* [ ] Bambda has a valid [header](https://github.com/PortSwigger/bambdas/blob/73077e7ff3f6fac9db7dc95c0a00bd842b6bb64c/Proxy/HTTP/FilterOnCookieValue.bambda#L1-L5), featuring an `@author` annotation and suitable description
* [ ] Bambda compiles and executes as expected
* [ ] Only .bambda files have been added or modified (README.md files are automatically updated / generated after PR merge)
* [ ] Bambda is in valid yaml format, and has a name, id, function, and location. To ensure this is correct, export the Bambda from your Bambda library in Burp.
10 changes: 5 additions & 5 deletions .github/workflows/bambda-checker-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ jobs:
update_readmes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: main
ssh-key: ${{secrets.ACTION_PRIVKEY}}
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'oracle'

- name: Validate Bambdas & update READMEs
run: |
[ $(sha256sum BambdaChecker-1.3.jar | awk '{ print $1 }') = '4df32c3375dad2563080fdfb19a85970332ee8c0f635f946e7e5b4994f6442e4' ]
java -jar BambdaChecker-1.3.jar
[ $(sha256sum BambdaChecker-1.5.jar | awk '{ print $1 }') = '085787c80b9f70f431c6f5a329cf59385b67e69d74116b11e5c4ccbc021ec3d6' ]
java -jar BambdaChecker-1.5.jar
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
Expand Down
166 changes: 157 additions & 9 deletions .github/workflows/bambda-checker-merge.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,180 @@
name: Run Bambda Checker on Merge

on:
pull_request:
types:
- closed
push:
branches:
- main

jobs:
update_readmes:
if: github.event.pull_request.merged
runs-on: ubuntu-latest
outputs:
new_bambdas: ${{ steps.check_bambda_changes.outputs.new_bambdas }}
bambda_files: ${{ steps.check_bambda_changes.outputs.bambda_files }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: main
ssh-key: ${{secrets.ACTION_PRIVKEY}}
- uses: actions/setup-java@v3
fetch-depth: 2
- uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'oracle'

- name: Check for Bambda file changes
id: check_bambda_changes
run: |
ALL_BAMBDA_CHANGES=$(git diff --name-only HEAD~1 HEAD | grep '\.bambda$' || true)

if [ -n "$ALL_BAMBDA_CHANGES" ]; then
echo "bambdas_changed=true" >> $GITHUB_OUTPUT

NEW_BAMBDAS=$(git diff --name-only --diff-filter=A HEAD~1 HEAD | grep '\.bambda$' || true)
if [ -n "$NEW_BAMBDAS" ]; then
echo "new_bambdas=true" >> $GITHUB_OUTPUT
echo "bambda_files<<EOF" >> $GITHUB_OUTPUT
echo "$NEW_BAMBDAS" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "new_bambdas=false" >> $GITHUB_OUTPUT
fi
else
echo "bambdas_changed=false" >> $GITHUB_OUTPUT
echo "new_bambdas=false" >> $GITHUB_OUTPUT
fi

- name: Validate Bambdas & update READMEs
if: steps.check_bambda_changes.outputs.bambdas_changed == 'true'
run: |
[ $(sha256sum BambdaChecker-1.3.jar | awk '{ print $1 }') = '4df32c3375dad2563080fdfb19a85970332ee8c0f635f946e7e5b4994f6442e4' ]
java -jar BambdaChecker-1.3.jar
[ $(sha256sum BambdaChecker-1.5.jar | awk '{ print $1 }') = '085787c80b9f70f431c6f5a329cf59385b67e69d74116b11e5c4ccbc021ec3d6' ]
java -jar BambdaChecker-1.5.jar
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "Update README.md files" || true
git push || true

send_discord_webhooks:
runs-on: ubuntu-latest
needs: update_readmes
if: needs.update_readmes.outputs.new_bambdas == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: main

- name: Prepare webhook messages
env:
BAMBDA_LIST: ${{ needs.update_readmes.outputs.bambda_files }}
GITHUB_REPOSITORY: ${{ github.repository }}
run: |
set -euo pipefail

to_sentence_case() {
local str=$1
echo "$str" | sed 's/_/ /g' | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2))}1'
}

extract_metadata() {
local file=$1
local field=$2

case "$field" in
name)
grep '^name:' "$file" | head -1 | sed 's/^name: *//'
;;
description)
sed -n '/\/\*\*/,/\*\*\//p' "$file" |
grep -v '@author' | grep -v '/\*\*' | grep -v '\*\*/' |
grep -v '^[[:space:]]*\*[[:space:]]*$' | head -1 |
sed 's/^[[:space:]]*\*[[:space:]]*//'
;;
author)
sed -n '/\/\*\*/,/\*\*\//p' "$file" |
grep '@author' |
sed 's/^[[:space:]]*\*[[:space:]]*@author[[:space:]]*//'
;;
function)
local raw=$(grep '^function:' "$file" | head -1 | sed 's/^function: *//')
to_sentence_case "$raw"
;;
location)
local raw=$(grep '^location:' "$file" | head -1 | sed 's/^location: *//')
to_sentence_case "$raw"
;;
esac
}

build_payload() {
local name=$1
local description=$2
local author=$3
local function=$4
local location=$5
local url=$6

jq -n \
--arg name ":tada: $name" \
--arg description "$description" \
--arg author "$author" \
--arg function "$function" \
--arg location "$location" \
--arg url "$url" \
'{
embeds: [{
type: "rich",
title: $name,
description: (
$description + "\n\n" +
"**Author:** " + $author + "\n" +
"**Function:** " + $function + "\n" +
"**Location:** " + $location
),
color: 2123412,
url: $url
}]
}'
}

mkdir -p webhook_payloads

while IFS= read -r file; do
[ -z "$file" ] && continue

name=$(extract_metadata "$file" name)
description=$(extract_metadata "$file" description)
author=$(extract_metadata "$file" author)
function=$(extract_metadata "$file" function)
location=$(extract_metadata "$file" location)
url="https://github.com/${GITHUB_REPOSITORY}/blob/main/$file"

safe_name=$(echo "$file" | sed 's/[^a-zA-Z0-9._-]/_/g')
build_payload "$name" "$description" "$author" "$function" "$location" "$url" > "webhook_payloads/${safe_name}.json"
echo "$safe_name" >> webhook_payloads/file_list.txt
done <<< "$BAMBDA_LIST"

- name: Send webhook messages
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
run: |
set -euo pipefail

[ ! -f webhook_payloads/file_list.txt ] && { echo "No payloads to send"; exit 0; }

while IFS= read -r safe_name; do
[ -z "$safe_name" ] && continue

payload="webhook_payloads/${safe_name}.json"
[ ! -f "$payload" ] && continue

http_code=$(curl -sf -w "%{http_code}" -o /dev/null \
-H "Content-Type: application/json" \
-d @"$payload" "$DISCORD_WEBHOOK_URL")

if [ "$http_code" = "204" ]; then
echo "✓ Sent webhook for $safe_name"
else
echo "✗ Failed to send webhook for $safe_name (HTTP $http_code)" >&2
fi
done < webhook_payloads/file_list.txt
12 changes: 6 additions & 6 deletions .github/workflows/bambda-checker-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- uses: actions/setup-java@v3
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'oracle'

- name: Validate Bambdas
run: |
[ $(sha256sum BambdaChecker-1.3.jar | awk '{ print $1 }') = '4df32c3375dad2563080fdfb19a85970332ee8c0f635f946e7e5b4994f6442e4' ]
java -jar BambdaChecker-1.3.jar validateonly
[ $(sha256sum BambdaChecker-1.5.jar | awk '{ print $1 }') = '085787c80b9f70f431c6f5a329cf59385b67e69d74116b11e5c4ccbc021ec3d6' ]
java -jar BambdaChecker-1.5.jar validateonly
28 changes: 28 additions & 0 deletions .github/workflows/bambda-checker-validate-only.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Validate Bambdas

on: [workflow_dispatch]

jobs:
validate_bambdas:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'oracle'

- name: Validate Bambdas
run: |
set -e
echo "Verifying checksum..."
expected='085787c80b9f70f431c6f5a329cf59385b67e69d74116b11e5c4ccbc021ec3d6'
actual=$(sha256sum BambdaChecker-1.5.jar | awk '{ print $1 }')
if [ "$actual" != "$expected" ]; then
echo "Checksum mismatch: expected $expected, got $actual"
exit 1
fi
echo "Checksum verified, running validator..."

java -jar BambdaChecker-1.5.jar validateonly
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*.DS_Store
*.vscode
*/.git
*/.git
.idea/
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file removed BambdaChecker-1.3.jar
Binary file not shown.
Binary file added BambdaChecker-1.5.jar
Binary file not shown.
Loading