adding validated services? patching forcad_local.py

This commit is contained in:
Your Name
2026-08-13 08:32:35 +07:00
parent d485f61169
commit e795614e45
1459 changed files with 420036 additions and 436 deletions

View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
# Simple helper to exercise checker.py in check/put/get modes.
set -u
set -o pipefail
HOST=${POLYPHONIA_TEST_HOST:-127.0.0.1}
if [[ -v POLYPHONIA_TEST_FLAG ]]; then
FLAG=${POLYPHONIA_TEST_FLAG}
else
# Default to attack-defence style flag: 31 chars of A-Z0-9 plus '='
FLAG="$(LC_ALL=C tr -dc 'A-Z0-9' </dev/urandom | head -c 31)="
fi
FLAG_ID=${POLYPHONIA_TEST_FLAG_ID:-placeholder-flag-id}
VULN=${POLYPHONIA_TEST_VULN:-1}
PRESET_STORED=${POLYPHONIA_TEST_STORED:-}
RUN_LAST_STDOUT=""
RUN_LAST_STDERR=""
print_cmd() {
printf '$'
for arg in "$@"; do
printf ' %q' "$arg"
done
printf '\n'
}
run_checker() {
local stdout_file
local stderr_file
stdout_file=$(mktemp)
stderr_file=$(mktemp)
print_cmd python3 checker.py "$@"
python3 checker.py "$@" >"${stdout_file}" 2>"${stderr_file}"
local code=$?
RUN_LAST_STDOUT=$(cat "${stdout_file}")
RUN_LAST_STDERR=$(cat "${stderr_file}")
rm -f "${stdout_file}" "${stderr_file}"
if [[ -n "${RUN_LAST_STDOUT}" ]]; then
printf '%s\n' "${RUN_LAST_STDOUT}"
else
echo "<stdout empty>"
fi
if [[ -n "${RUN_LAST_STDERR}" ]]; then
printf '%s\n' "${RUN_LAST_STDERR}" >&2
else
printf '<stderr empty>\n' >&2
fi
echo "exit code: ${code}"
return "${code}"
}
run_checker check "${HOST}"
check_code=$?
run_checker put "${HOST}" "${FLAG_ID}" "${FLAG}" "${VULN}"
put_code=$?
stored_flag_id="${PRESET_STORED}"
if [[ -z "${stored_flag_id}" ]]; then
if [[ ${put_code} -eq 101 && -n "${RUN_LAST_STDOUT}" ]]; then
stored_flag_id=$(printf '%s' "${RUN_LAST_STDOUT}" | tail -n 1)
else
stored_flag_id="${FLAG_ID}"
fi
fi
run_checker get "${HOST}" "${stored_flag_id}" "${FLAG}" "${VULN}"
get_code=$?
exit_code=0
for code in "${check_code}" "${put_code}" "${get_code}"; do
if [[ ${code} -ne 101 ]]; then
exit_code=${code}
break
fi
done
exit "${exit_code}"