¿Cómo puede "presionar" un botón de una página web desde la línea de comandos para reiniciar un cable módem?

1

Estoy tratando de reiniciar mi cable módem mediante programación. Solía ​​poder hacer esto usando wget:

wget http://192.168.100.1/reset.htm?reset_modem=Restart+Cable+Modem

Sin embargo, cambié mi módem por cable a un Arris SB6190 y esto ya no funciona.

El nuevo modelo tiene una página de configuración http://192.168.100.1/cgi-bin/configuration (cuya fuente exacta se puede ver aquí https://bpaste.net/show/b19c875569ec ) donde puede reiniciar haciendo clic en un botón formar:

<input type="submit" value="Reboot" align="middle"  onClick="resetReq();">
BigoteGalleta
fuente
1
Probablemente no sea tan simple. Funcionó en su módem anterior solo porque tenía una vulnerabilidad que permitía restablecer sin la autorización adecuada.
gronostaj
Estoy pensando que PO habría omitido las credenciales del wget. La diferencia es que un enrutador tiene una URL para reiniciar (como muchos D-Link), y el otro usa una función con script (). No hay una solución simple. La mente de la mafia parece recomendar Selenium con un navegador ficticio.
mckenzm

Respuestas:

1

Mi sugerencia es hacer lo siguiente:

  1. Vaya a la página donde está el botón de reinicio.
  2. Abra las herramientas de desarrollo de su navegador (recomendaría Chrome para esto)
  3. Vaya a la pestaña de red. Asegúrese de que esté grabando (puntee hacia la esquina superior izquierda de la interfaz de usuario de las herramientas de desarrollo. Marque la casilla "registro persistente". Borre el registro si tiene un montón de cosas allí.
  4. Clic en el botón. Verá la solicitud de red registrada en la consola. Haga clic derecho sobre eso y Chrome le da la opción de copiar la solicitud como un comando CURL (o tal vez tiene wget ... podría depender de la plataforma).

Ahora necesita analizar ese comando (también puede hacer clic en la solicitud en la consola para ver los encabezados de la solicitud). ¿Utiliza alguna autenticación (por ejemplo, pasar un valor en la cookie o usar autenticación HTTP)? Si es así, supongo que la autenticación tiene una caducidad incorporada. Si usa una cookie o token (en lugar de ese nombre de usuario / contraseña), deberá capturar la solicitud para iniciar sesión en la interfaz administrativa y ver en qué parte de los encabezados de respuesta (o tal vez los datos de respuesta) de esa solicitud se envía su token de autenticación a su navegador Es posible que deba actualizar su secuencia de comandos para primero autenticar y enganchar ese token y luego realizar la segunda solicitud para reiniciar usando ese token / autenticación.

Los detalles dependen de la implementación exacta del proceso de autenticación para su enrutador, pero este enfoque general debería funcionar para la mayoría de las cosas.

tiempo que
fuente