Zion Boggan
repos/JWT Differential Fuzzer/scripts/up_native.sh
zionboggan.com ↗
37 lines · bash
History for this file →
1
set -e
2
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
3
mkdir -p "$ROOT/.native/logs" "$ROOT/.native/pids"
4
 
5
probe() {
6
  local port="$1"
7
  curl -s -o /dev/null -w "%{http_code}" -X POST "http://localhost:$port/verify" \
8
       -H 'Content-Type: application/json' -d '{"token":"","key":"","algs":[]}' \
9
       --max-time 2
10
}
11
 
12
start() {
13
  local name="$1" port="$2" cmd="$3" cwd="$4"
14
  local pidf="$ROOT/.native/pids/$name.pid"
15
  local logf="$ROOT/.native/logs/$name.log"
16
 
17
  if [[ -f "$pidf" ]] && kill -0 "$(cat "$pidf")" 2>/dev/null; then
18
    echo "  ?  $name already running (pid $(cat "$pidf"))"
19
    return
20
  fi
21
 
22
  ( cd "$cwd" && nohup bash -c "$cmd" >"$logf" 2>&1 & echo $! > "$pidf" )
23
 
24
  for _ in 1 2 3 4 5; do
25
    sleep 0.4
26
    if [[ "$(probe "$port")" == "200" ]]; then
27
      echo "  ok $name :$port  pid=$(cat "$pidf")"
28
      return
29
    fi
30
  done
31
  echo "  XX $name :$port - see $logf"
32
}
33
 
34
start nodejwt 7001 "node server.js"    "$ROOT/.native/nodejwt"
35
start pyjwt   7002 "python3 server.py" "$ROOT/targets/pyjwt"
36
start pyjose  7003 "python3 server.py" "$ROOT/targets/python-jose"
37
start panva   7004 "node server.js"    "$ROOT/.native/panva"