#!/bin/bash # Script para probar manejo de contraseñas con caracteres especiales # Uso: ./test_special_chars.sh echo "🔧 PRUEBA DE MANEJO DE CARACTERES ESPECIALES EN CONTRASEÑAS" echo "============================================================" # URL del servicio URL="https://localhost:8443/mac-monitor" HEADERS="Content-Type: application/json" echo "" echo "1. 📝 Probando contraseña con ! (sin escape)" echo " Password: Tr4!D0r3s" RESPONSE1=$(curl -s -k -X POST "$URL" -H "$HEADERS" -d '{"host": "10.150.226.19", "username": "itops", "password": "Tr4!D0r3s", "use_legacy_ssh": true}') if [[ $RESPONSE1 == *"JSON inválido"* ]]; then echo " ❌ ERROR: $RESPONSE1" else echo " ✅ JSON válido - Conectando..." fi echo "" echo "2. 📝 Probando contraseña con @ y # y $" echo " Password: P@ssw0rd#123$" RESPONSE2=$(curl -s -k -X POST "$URL" -H "$HEADERS" -d '{"host": "10.150.226.19", "username": "itops", "password": "P@ssw0rd#123$", "use_legacy_ssh": true}') if [[ $RESPONSE2 == *"JSON inválido"* ]]; then echo " ❌ ERROR: $RESPONSE2" else echo " ✅ JSON válido - Conectando..." fi echo "" echo "3. 📝 Probando contraseña con espacios" echo " Password: 'Mi Contraseña 123!'" RESPONSE3=$(curl -s -k -X POST "$URL" -H "$HEADERS" -d '{"host": "10.150.226.19", "username": "itops", "password": "Mi Contraseña 123!", "use_legacy_ssh": true}') if [[ $RESPONSE3 == *"JSON inválido"* ]]; then echo " ❌ ERROR: $RESPONSE3" else echo " ✅ JSON válido - Conectando..." fi echo "" echo "4. 📝 Probando contraseña con comillas (usando archivo temporal)" echo " Password: Pass\"word" echo '{"host": "10.150.226.19", "username": "itops", "password": "Pass\"word", "use_legacy_ssh": true}' > /tmp/test_payload.json RESPONSE4=$(curl -s -k -X POST "$URL" -H "$HEADERS" -d @/tmp/test_payload.json) rm -f /tmp/test_payload.json if [[ $RESPONSE4 == *"JSON inválido"* ]]; then echo " ❌ ERROR: $RESPONSE4" else echo " ✅ JSON válido - Conectando..." fi echo "" echo "5. ❌ Probando escape incorrecto de !" echo " Password: Tr4\\!D0r3s (incorrecto)" RESPONSE5=$(curl -s -k -X POST "$URL" -H "$HEADERS" -d '{"host": "10.150.226.19", "username": "itops", "password": "Tr4\!D0r3s", "use_legacy_ssh": true}') if [[ $RESPONSE5 == *"JSON inválido"* ]]; then echo " ✅ Error esperado: $RESPONSE5" else echo " ❌ No debería funcionar: $RESPONSE5" fi echo "" echo "📋 RESUMEN:" echo " - Los caracteres ! @ # $ % & * + = funcionan sin escape en JSON" echo " - Los espacios funcionan normalmente dentro de comillas" echo " - Solo necesitan escape: \" \\ y caracteres de control \\n \\t \\r" echo " - NO usar \\! para escapar exclamación en JSON" echo "" echo "✅ Pruebas completadas"