Files
n8n-workflows/test_security.sh

40 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
echo "🔒 Testing Path Traversal Protection..."
echo "========================================="
# Test various path traversal attempts
declare -a attacks=(
"../api_server.py"
"../../etc/passwd"
"..%2F..%2Fapi_server.py"
"..%5C..%5Capi_server.py"
"%2e%2e%2fapi_server.py"
"../../../../../../../etc/passwd"
"....//....//api_server.py"
"..;/api_server.py"
"..\api_server.py"
"~/.ssh/id_rsa"
)
for attack in "${attacks[@]}"; do
response=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8000/api/workflows/$attack/download")
if [ "$response" == "400" ] || [ "$response" == "404" ]; then
echo "✅ Blocked: $attack (Response: $response)"
else
echo "❌ FAILED TO BLOCK: $attack (Response: $response)"
fi
done
echo ""
echo "🔍 Testing Valid Downloads..."
echo "========================================="
# Test valid download
response=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8000/api/workflows/0720_Schedule_Filter_Create_Scheduled.json/download")
if [ "$response" == "200" ]; then
echo "✅ Valid download works (Response: $response)"
else
echo "❌ Valid download failed (Response: $response)"
fi