Tu tienda PrestaShop muestra un falso «verifica que eres humano»: es ClickFix

Herramientas · 7 min de lectura

Tu tienda PrestaShop muestra un falso «verifica que eres humano»: es ClickFix

Un cliente te escribe: al entrar en tu tienda le ha salido un «verifica que eres humano» que le pedía pulsar dos teclas, pegar algo y darle a Intro. Tú entras y no ves nada raro. Si te ha pasado, tu tienda PrestaShop tiene ClickFix: alguien ha metido en ella un código que enseña ese falso captcha a tus visitantes para que instalen ellos mismos un programa malicioso, normalmente uno que roba contraseñas.

No se va solo: alguien entró en tu tienda y lo dejó ahí. Se limpia, pero lo importante es cerrar la puerta por la que entró. Y no eres el único: el 3 de septiembre Netskope contó más de 5.400 webs infectadas por esta campaña, casi todas de pequeños negocios. Las que revisaron una a una eran sobre todo WordPress y, a veces, PrestaShop.

¿Qué es ClickFix y por qué no lo ves tú?

La página se emborrona detrás de un captcha falso que pide pulsar la tecla de Windows y la R, pegar y pulsar Intro. Lo que se pega es un comando que la página ya ha copiado sin avisar, y al ejecutarlo se instala el programa del atacante. Un captcha de verdad nunca te pide abrir nada en tu ordenador.

Que tú no lo veas no quiere decir que no esté. El código de tu tienda va a buscar el engaño fuera cada vez que alguien abre una página, y el atacante decide qué se enseña y a quién sin volver a tocarla. Está pensado para ordenadores con Windows, y la variante que The Hacker News describió el 6 de octubre deja el programa escondido en el navegador del visitante antes de pedirle nada.

¿Cómo sé si mi tienda lo tiene?

  • Pide al cliente una captura y la hora a la que le salió: con eso, tu técnico sabe qué buscar.
  • Abre la tienda desde un ordenador con Windows, en una ventana de incógnito, sin entrar en el panel y desde otra conexión, como los datos del móvil.
  • Mira en Search Console, en Seguridad y acciones manuales → Problemas de seguridad. Si Google ya lo ha detectado, Chrome puede estar avisando a tus clientes de que tu web es peligrosa.

Con la captura del cliente basta para ponerte en marcha.

Qué tienes que hacer hoy, en orden

  1. Haz una copia completa, archivos y base de datos, y guárdala fuera del servidor antes de tocar nada. La necesitará quien limpie.
  2. Pon la tienda en mantenimiento, en Parámetros de la tienda → Configuración → Mantenimiento. Esa página no carga el JavaScript del tema ni los módulos de la cabecera, así que casi siempre corta el falso captcha, y a Google le dice que cierras solo por un tiempo. Compruébalo desde otra conexión: tu IP sigue viendo la tienda.
  3. Cambia todas las contraseñas: empleados del panel, hosting, FTP y base de datos. En Parámetros Avanzados → Equipo, borra a quien no reconozcas, y en Parámetros Avanzados → Security, cierra todas las sesiones del panel. Repítelo cuando la tienda esté limpia.
  4. Busca el código y la puerta trasera con tu técnico: quien entra suele dejar archivos para volver. Abajo te contamos dónde mirar.
  5. Cierra la puerta por la que entraron, o mañana vuelve a pasar.
  6. Vacía las cachés antes de abrir: la de PrestaShop, en Parámetros Avanzados → Rendimiento, y la de Cloudflare si lo usas. La tienda puede estar sirviendo una copia combinada del JavaScript del tema que sigue llevando el código aunque limpies el original. Si Google te había marcado, pide la revisión.
  7. Si algún cliente pegó el comando, avísale para que pase un antivirus y cambie las contraseñas guardadas en su navegador. Y si quien entró pudo ver datos de clientes, consúltalo con quien te lleve la protección de datos: el RGPD da 72 horas para notificarlo.

¿Dónde se esconde en PrestaShop?

En la base de datos, en un campo que la tienda pinta en todas las páginas, o en los archivos: Netskope lo encontró pegado a archivos JavaScript legítimos y en carpetas que imitan a un complemento real. Al comerciante francés que lo contó el 5 de octubre en el foro de PrestaShop, con una tienda 1.7.8, la base de datos le salió limpia y las puertas traseras estaban en archivos de varias carpetas.

  • Los campos de código personalizado. Muchos temas y módulos de analítica tienen una casilla para pegar código en la cabecera; en el tema Warehouse está en Diseño → IqitThemeEditor, en la pestaña de códigos. Lo que no sepas quién puso, fuera, aunque se parezca a algo conocido: uno de los de esta campaña se hacía pasar por Microsoft Clarity.
  • Las páginas y las fichas. Las páginas CMS y las descripciones de producto y de categoría admiten HTML, y ahí cabe un script.
  • Los módulos. En Módulos → Gestor de módulos, cualquiera que no instalaras tú.
  • Los archivos sueltos. En un PrestaShop limpio, las carpetas de imágenes, subidas y descargas no tienen más PHP que el index.php. Uno más, o uno cuyo nombre empieza por punto y que tu programa de FTP esconde, es una puerta trasera.

La comprobación de Parámetros Avanzados → Información → Listado de archivos modificados solo mira si han cambiado los archivos del núcleo: no revisa el tema, ni los módulos, ni las imágenes, ni ve los archivos nuevos. Que salga vacía no quiere decir que estés limpio.

¿Por dónde entraron y cómo cierro la puerta?

Netskope aún no sabe cómo entraron en esas webs. En PrestaShop, las puertas habituales son un módulo con un fallo conocido sin actualizar, una contraseña del panel robada o fácil, y los módulos «nulled», los de pago descargados gratis de webs piratas, que a menudo ya traen la puerta trasera puesta.

  • Actualiza los módulos, empezando por la búsqueda por facetas. El 3 de junio, PrestaShop avisó de un fallo grave en ps_facetedsearch, el módulo de los filtros del catálogo, que viene de serie con PrestaShop: dejaba a cualquiera, sin cuenta, ejecutar código en tu servidor. Está corregido en la 4.0.4; si tuviste una anterior, cuenta con que pudo ser la entrada. Y borra los módulos que no uses.
  • Protege el panel. Una contraseña larga y distinta para cada empleado, cuentas sin compartir y una dirección del panel que no sea /admin. El segundo paso con un código en el móvil no viene de serie, pero se añade con un módulo.
  • Pon un cortafuegos delante, como Cloudflare: frena muchos ataques automáticos antes de que lleguen a la tienda, y lo contamos en cómo limitar peticiones por IP sin bloquear a Google. El propio PrestaShop recuerda que es una capa más, no un sustituto de actualizar.
  • Sal de la 1.7. PrestaShop dejó de mantenerla cuando publicó la 9.0, en junio de 2025. Era la versión de la tienda del foro.

Para tu equipo técnico

Consultas de solo lectura; cambia ps_ por el prefijo de la tienda. Warehouse guarda sus campos de código escapados, así que hay que buscar también <script.

SELECT name, LEFT(value, 120)
  FROM ps_configuration
 WHERE value LIKE '%<script%'
    OR value LIKE '%&lt;script%'
    OR value LIKE '%eth_call%'
    OR name LIKE '%codes_js';
SELECT id_cms, id_lang
  FROM ps_cms_lang
 WHERE content LIKE '%<script%';
SELECT id_employee, email,
       id_profile, active,
       last_connection_date
  FROM ps_employee
 ORDER BY id_employee DESC;

En los archivos, desde la raíz de la tienda:

find img upload download \
  -name '*.php' ! -name index.php
find . -name '.*.php'
find . -type f -mtime -30 \
  \( -name '*.php' -o -name '*.js' \) \
  -not -path './var/cache/*'
grep -rl -e eth_call -e prebsc \
  -e bsc-testnet -e claritydelivr \
  --include=*.js --include=*.php \
  --include=*.tpl .

Los indicadores de la campaña están en la lista de Netskope. Mejor reponer el núcleo y los módulos desde paquetes limpios de la misma versión que borrar archivo a archivo; después, vaciar var/cache y themes/*/assets/cache. PrestaShop 9 trae un .htaccess que impide ejecutar PHP en img, upload, download, js, vendor y modules: que sigan en su sitio y, con Nginx, que no los lee, llevar esas reglas a la configuración del servidor.

¿Cuándo pedir ayuda?

Si has encontrado algo y no tienes quien lo limpie, si ha vuelto después de limpiarlo o si no sabes por dónde empezar. Es parte de nuestro servicio de soporte y mantenimiento: limpiamos la tienda, buscamos por dónde entraron y cerramos la puerta. Mándanos la captura de tu cliente y tu versión de PrestaShop, y lo miramos el mismo día o el siguiente.

Cuéntanos qué ha visto tu cliente

Cómo te podemos ayudar

Ver todos los servicios →

Seguir leyendo

¿Te echamos una mano con tu proyecto? Hablemos

Cuéntanos qué necesita tu negocio

Un módulo, una app, un servidor que da guerra o solo una opinión. La primera consulta no cuesta nada, y de ahí sale un presupuesto cerrado con precio y fecha.