diff --git a/scripts/cutover/post-import-seguridad.sh b/scripts/cutover/post-import-seguridad.sh old mode 100755 new mode 100644 index 4d5973c..88e7288 --- a/scripts/cutover/post-import-seguridad.sh +++ b/scripts/cutover/post-import-seguridad.sh @@ -70,6 +70,28 @@ for hook in wpseo-reindex wpseo_permalink_structure_check wppb_review_check cozm fi done +echo "" +echo "=== 3b. Retirar la inyeccion de SEO spam del incidente #183 ===" +# La opcion 'wordfence_core_options' NO es de Wordfence (que ni siquiera esta instalado): +# es el payload que dejo el atacante, cifrado con un cesar de una letra, con un div oculto +# (left:-7585px) y enlaces a un casino japones, enganchado a wp_footer. Hoy esta inerte +# porque quien lo leia era el plugin wp-highlits, en cuarentena. Pero VIAJA EN EL DUMP, +# asi que cada import lo reintroduce. Se preserva antes de borrar (evidencia del #183). +SPAMOPT=wordfence_core_options +if [ $DRY -eq 1 ]; then + echo " [dry-run] preservaria y borraria la opcion $SPAMOPT" +else + ssh -o BatchMode=yes "$SRV" "bash -s" </dev/null; } + EV=/data/feadulta-migracion/evidencia-183; mkdir -p "\$EV" + m "SELECT option_value FROM wp_options WHERE option_name='$SPAMOPT';" > "\$EV/${SPAMOPT}.\$(date +%Y%m%d%H%M%S).txt" + m "DELETE FROM wp_options WHERE option_name='$SPAMOPT';" + n=\$(m "SELECT COUNT(*) FROM wp_options WHERE option_name='$SPAMOPT';") + echo " $SPAMOPT: preservada y borrada (quedan \$n)" +REMOTE +fi + echo "" echo "=== 4. Verificacion ===" echo " administradores que quedan:"