From 21ddcec55f6c51006a8292a2d61d50cfd77c82fb Mon Sep 17 00:00:00 2001 From: Phorcys <57866459+phorcys420@users.noreply.github.com> Date: Sun, 11 Aug 2024 22:14:20 +0200 Subject: [PATCH] fix: fix burp tests and add `$BURP_HOME` (#32) * fix: fix burp tests and add `$BURP_HOME` * chore: "Burp" -> "Burp Suite" --- .github/workflows/test.yaml | 4 +++- src/burp-suite/devcontainer-feature.json | 5 +++++ src/burp-suite/install.sh | 13 ++++++++----- test/burp-suite/desktop.sh | 3 --- test/burp-suite/scenarios.json | 11 +---------- test/burp-suite/test.sh | 3 ++- 6 files changed, 19 insertions(+), 20 deletions(-) delete mode 100644 test/burp-suite/desktop.sh diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index aa196f8..cbcf171 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,6 +14,7 @@ jobs: matrix: features: - android-sdk + - burp-suite - coder - cutter - ghidra @@ -39,8 +40,9 @@ jobs: matrix: features: - android-sdk - - coder - burp-suite + - coder + - coder - cutter - ghidra - lib-common diff --git a/src/burp-suite/devcontainer-feature.json b/src/burp-suite/devcontainer-feature.json index 1230da9..bfbe8a4 100644 --- a/src/burp-suite/devcontainer-feature.json +++ b/src/burp-suite/devcontainer-feature.json @@ -26,6 +26,11 @@ } }, + "containerEnv": { + "BURP_HOME": "/opt/burp-suite", + "PATH": "${PATH}:${BURP_HOME}" + }, + "installsAfter": [ "ghcr.io/devcontainers/features/common-utils", "ghcr.io/devcontainers/features/desktop-lite" diff --git a/src/burp-suite/install.sh b/src/burp-suite/install.sh index 17b4ed9..4f27690 100755 --- a/src/burp-suite/install.sh +++ b/src/burp-suite/install.sh @@ -8,15 +8,18 @@ echo "Activating feature '$FEATURE_NAME'" # Source lib-common feature source "/usr/share/phorcys-devcontainer-libraries/common/1/main.sh" -# Check for dependencies -checkPackages curl ca-certificates jq sudo +# Check for dependencies (libfreetype6 is only really needed to run in CI, otherwise you would always have this library if you have the desktop-lite feature) +checkPackages curl ca-certificates jq sudo libfreetype6 # Load options EDITION=${EDITION:-community} VERSION=${VERSION:-latest} +# CUTTER_HOME is defined in the containerEnv value of the feature's manifest +BURP_HOME=${BURP_HOME:-/opt/burp-suite} + if [ $VERSION = "latest" ]; then - echo "[$FEATURE_NAME] [+] Grabbing the latest Burp version" + echo "[$FEATURE_NAME] [+] Grabbing the latest Burp Suite version" RELEASE_DATA=$(curl 'https://portswigger.net/burp/releases/data?previousLastId=-1&lastId=-1&pageSize=5' --silent --show-error --fail) @@ -39,7 +42,7 @@ curl --get --location --silent --show-error --fail \ # Make temporary directory accessible to all users chmod +rx "$TMP" -R -echo "[$FEATURE_NAME] [+] Installing Burp $EDITION" -sudo -u "$_REMOTE_USER" "$DESTINATION_FILE" -q # $_REMOTE_USER_HOME +echo "[$FEATURE_NAME] [+] Installing Burp Suite $EDITION edition" +"$DESTINATION_FILE" -q -dir "$BURP_HOME" -overwrite rm -rf "$TMP" \ No newline at end of file diff --git a/test/burp-suite/desktop.sh b/test/burp-suite/desktop.sh deleted file mode 100644 index b5de05b..0000000 --- a/test/burp-suite/desktop.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -# Do nothing \ No newline at end of file diff --git a/test/burp-suite/scenarios.json b/test/burp-suite/scenarios.json index e0c6b06..9e26dfe 100644 --- a/test/burp-suite/scenarios.json +++ b/test/burp-suite/scenarios.json @@ -1,10 +1 @@ -{ - "desktop": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "ghcr.io/devcontainers/features/desktop-lite:1": {}, - - "burp-suite": {} - } - } -} \ No newline at end of file +{} \ No newline at end of file diff --git a/test/burp-suite/test.sh b/test/burp-suite/test.sh index 4378ccd..b747390 100644 --- a/test/burp-suite/test.sh +++ b/test/burp-suite/test.sh @@ -5,7 +5,8 @@ set -euo pipefail # Optional: Import test library bundled with the devcontainer CLI source dev-container-features-test-lib -# Do nothing +check "Burp folder exists" test -d "$BURP_HOME" +check "Burp binary is in the PATH" which BurpSuiteCommunity # Report results # If any of the checks above exited with a non-zero exit code, the test will fail.