Encontrar PHP dentro de wp-content/uploads requiere investigación inmediata porque uploads normalmente debe contener medios, no código ejecutable. Puede ser un payload malicioso, un archivo dejado por otra infección o, mucho menos habitualmente, código propio guardado en un lugar inadecuado.
Contén la ejecución antes de borrar la evidencia
Impide la ejecución pública del archivo o directorio sospechoso y conserva copia, hash, propietario y timestamps. Registra peticiones que hayan llegado a él.
Sigue la vía que permitió escribir PHP en uploads
- Revisa handlers de subida vulnerables y plugins modificados recientemente.
- Comprueba propiedad de archivos y usuario PHP/web.
- Cruza la hora de creación con access logs y actividad administrativa.
- Busca referencias desde tema, plugins, cron y opciones de base de datos.
Un único PHP puede indicar una persistencia más amplia
Si forma parte de una infección en el tema, compara malware WP-VCD. Si también cambian archivos de core o raíz, utiliza el triaje de cambios de integridad para delimitar el alcance.
Repara la vía de escritura, no solo la carpeta uploads
- Elimina los archivos maliciosos confirmados después de conservar evidencia.
- Actualiza o sustituye el componente que permitía la escritura.
- Reinstala código afectado desde fuentes fiables.
- Rota credenciales capaces de subir o modificar código.
- Bloquea ejecución PHP en directorios multimedia cuando sea compatible.
No conviertas todo el sitio en read-only como solución permanente
WordPress necesita zonas escribibles controladas; el objetivo es mínimo privilegio.
Verificación
No debe reaparecer ningún ejecutable en uploads tras tráfico, cron o reinicios normales, y la subida legítima de medios debe seguir funcionando.