BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
Fibra

Peticiones POST contra el servidor TR-069 de Digi

BocaDePez

Tengo los parámetros de conexión (URL, UserName, ConnectionRequestURL, ConnectionRequestUserName y todas sus contraseñas) de acceso al servidor TR-069 de DIGI.

<Tbl name="MgtServer" RowCount="1">
<Row No="0">
<DM name="URL" val="https://tr069-1.s.digimobil.es:9191/web/tr069"/>
<DM name="UserName" val="H298A-XXXXXXXXXXXX"/> <!-- Editado el username ->
<DM name="Password" val="YYYYYYYYYY"/> <!-- Editada la passwd ->
<DM name="PeriodicInformEnable" val="1"/>
<DM name="PeriodicInformInterval" val="21797"/>
<DM name="PeriodicInformTime" val="0001-01-01T00:00:00Z"/>
<DM name="ParameterKey" val=""/>
<DM name="ConnectionRequestURL" val="AAAA"/> <!-- Editada la URL de petición de conexión: 4 dígitos ->
<DM name="ConnectionRequestUsername" val="itms"/>
<DM name="ConnectionRequestPassword" val="ZZZZZZZZ"/> <!-- Editada la passwd de itms ->
<DM name="UpgradesManaged" val="0"/>
<DM name="Event" val=""/>
<DM name="DefaultWan" val=""/>
<DM name="SessionRetryTimes" val=""/>
<DM name="SupportCertAuth" val="0"/>
<DM name="Tr069Enable" val="1"/>
<DM name="MWSURL" val="http://0.0.0.0:9090"/>
<DM name="DataModule" val="0"/>
<DM name="StringPrefix" val=""/>
<DM name="CertID" val="Auto"/>
<DM name="BoolMode" val="0"/>
<DM name="retryMinWaitInterval" val="5"/>
<DM name="RetryIntervalMultiplier" val="2000"/>
<DM name="CheckHost" val="0"/>
<DM name="ACSType" val="1"/>
<DM name="ACSURLRetry" val="300"/>
<DM name="RemoteUpgradeCertAuth" val="0"/>
<DM name="ParamTypeCheck" val="0"/>
</Row>
</Tbl>

Cuando intento acceder a la url https://tr069-1.s.digimobil.es:9191/web/tr069 me indica:

Only POST is supported.

¿Alguien puede indicarme cómo se realizan las peticiones POST contra el servidor TR-069? La idea es poder descargar los diferentes firmwares que hay en el servidor para poder probarlos, así como otra información relevante.

BocaDePez
1

¿De verdad que sacas eso y no sabes hacer una petición POST? Pues es infinítamente más sencillo.

Cuando pones una URL en el navegador, se envía por GET (la primera palabra en la negociación es GET). Cuando envías un formulario (que tenga method="post") la petición se envía por POST.

Mira un curso de HTML como este: w3schools.com/html/html_forms.asp

Cuestión que hagas o bien la petición a mano o bien un .html con lo que quieres.

rbetancor
1

Con wget o curl lo puedes hacer, consulta su documentación es muy fácil.

Lo que ya no te será tan fácil, es averiguar el XML que le tienes que mandar al server, tendrías que modificar la config del router, para que envíe las peticiones a un server ACS falseado tuyo y así puedas ver lo que le está mandando al server de Digi y el formato.

🗨️ 10
BocaDePez

Quería preguntar si existía algún estándar de peticiones al servidor TR-069, al tratarse precisamente este protocolo TR-069 un estándar para los ISPs.

Preguntaba si existía algún estándar de peticiones post para comunicarse con el servidor TR-069, pero parece que es propietario de cada ISP.

🗨️ 8
BocaDePez

Algunas cosas estarán estandarizadas y otras no. Lo mejor que puedes hacer en este caso es abrirle las tripas al firmware actual del router para ver qué peticiones realiza.

🗨️ 1
BocaDePez

El problema de este router de Digi es que está capadísimo y no se puede entrar a la shell por ssh ni por nada más. Me han dicho que por este protocolo se puede descargar firmwares del servidor de Digi y que tienen varios firmwares y algunos no están capados.

rbetancor

A ver ... estandarizado, estandarizado ... NO, no hay nada ... cada fabricante implementa un juego básico de de instrucciones ... y luego tiene sus propias 'extensioones'

TODO lo que hace un servidor ACS, que son los que se encargan del TR069, es convertir parámetros de configuración de una base de datos, a XML's con el esquema de cada fabricante, en función del user/pass o del serial o cualquier otra etiqueta identificadora que el el CPE envía al ACS.

TODO no es más que un server HTTP/S enviando y recibiendo ficheros XML, que genera/interpreta un backend, que suele llevar plugins en función de los diferentes fabricantes/modelos que el ACS ha de manejar.

Ya luego, lo que permita cada fabricante, depende de sus esquemas XML-SCHEMA.

Sino recuerdo mal ... hay uno en github, hecho en python para todo el backed ... que te permite cargar XSLTs y XSDs y luego te hace las transformaciones pertinentes cuando un CPE pide o envía información al server.

🗨️ 5
BocaDePez

Gracias, voy a investigarlo.

🗨️ 4
BocaDePez
BocaDePez
🗨️ 3
BocaDePez
BocaDePez
🗨️ 2
rbetancor
rbetancor
🗨️ 1
BocaDePez
BocaDePez
Emad
Emad
-1