OpenDisc = churro.
Hola, ¿qué tal?. ¿Estamos de vacaciones ya eh? bueno algunos ya han vuelto, otros estamos medio medio y luego está el puto amo en estos temas, Juan Carlos I, que lleva todo el año(s) tocándose la sardina. ¡Qué tio más campechano!
Tras esta echada estival, vamos a lo que vamos. Voy a reconocer públicamente lo que en ciertos círculos ya conocen: «Hola soy Rubén y me gusta la música de Bebe». Por temor a que Ramoncín esté sentado a la derecha de dios padre, cuando llegue el día del juicio final y me pase factura de todos los casettes,CDs o mp3s que me he bajado, decidí comprarme su último disco original ( oigo risas, grrrr ).
Tirirititi, bueno pues resulta que este disco es OpenDisc. ¿Qué es OpenDisc? pues básicamente es una implementación propia de un Enhanced_CD con el fin de ofrecer servicios exclusivos a través de web a los poseedores del CD. En el case de OpenDisc, en la segunda sesión del CD van una serie de carpetas y ejecutables. El autorun.inf apunta a OpenDisc.exe. Ejecutándolo nos pide un registro como nuestro nombre, si tenemos pene o no, nuestra fecha de nacimiento etc… Después pone unos mensajes ahí todo chulos de «abriendo protocolos» «recibiendo clave de acceso» «conectando con cristo» y cosas así. PUTA MENTIRA TODO. ¿Pero qué clave ni que niño muerto? Ya veréis.
Primero, según el soporte de OpenDisc, usan SSL para cifrar todas las comunicaciones que incluyan información personal. Mentiraaaa, sólo usan SSL para la web. El cliente OpenDisc.exe va todo a pelo perro mediante HTTP requests.
Aquí tenéis como crea un usuario. Veis que manda todos los datos en una petición GET en texto plano. Asi a bote pronto se me ocurre que se puede generar un script para crear n usuarios. Pero vamos eso si sois unos hijos de puta. Yo no lo haría.
GET /create_user_utf8.opd?
psig=99996581124
&sysdatetime=20090804_122922
&lname=cabron
&fname=tuputamadre
&cp=28080
&country=724
&email=jasldjadf@ljasdlja.com.uk
&birthday=19800604
&fstatus=3
&mphone=
&bogus=32508
&netf=LXX
&ver=2.8.0
&opsys=Win
&opsysver=6.0.768 ; sí, uso Vista :P
&opsyslng=ESN HTTP/1.1
Accept: text/*
User-Agent: Opendisc
Bien pues esta petición devuelve un UserID, que ojo, es secuencial !! FAIL!
HTTP/1.1 200 OK
5019093
Vale veamos todo eso de abriendo protocolos, la clave etc..
Básicamente lo que hace es enviar una petición para validar al usuario, basándose en el email. Pero da igual, si no es válido también puedes acceder a los contenidos exclusivos. Realmente lo único que necesitas es el numerito que identifica el album al que quieres acceder. Este parámetro se envia en el argumento «psig»
psig=99996581124 -> Bebe «Y.»
Y te preguntarás ¿De donde saca el numerico? Pues bien, lo lee del archivo «CDPLUS\INFO.CDP» y/o «CDPLUS\SUB_INFO». Podéis comprobarlo aquí
.text:00415A34 push 1 ; n
.text:00415A36 push 10h ; size
.text:00415A38 lea eax, [ebp+ptr]
.text:00415A3E push eax ; ptr
.text:00415A3F call _fread ; lee el psig
el parser del SUB_INFO, por si alguien quiere hacerse un cliente, lo podéis analizar aquí
.text:0041609D push 32h ; SUB_INFO.CDP PARSE
.text:0041609F push 0 ; c
.text:004160A1 lea ecx, [ebp+ptr]
.text:004160A7 push ecx ; s
.text:004160A8 call _memset
…
Posteriormente, hace otra petición GET para que le devuelva una URL generada dinámicamente que nos conducirá a los contenidos exclusivos.
GET /get_url.opd=?
psig=99996581124
&uid=5019093
&sysdatetime=20090804_122923
&bogus=23257
&netf=LXX
&ver=2.8.0
&opsys=Win
&opsysver=6.0.768
&opsyslng=ESN HTTP/1.1
Host: remote.opendisc.net
que nos devuelve la url que cargará en el navegador por defecto.
HTTP/1.1 200 OK
http://basicsite2.opendisc.net/index.aspx?
s=0c7e655e6e46388khgmk9ke2c8
&i=0
&u=c1ce5270ce7062
&m=52705262
&p=66701652454b16c1ce164b62
&k=78a6
&ds=92cece70ce4bce455292927052b0
&dk=36cqc3qq
RESUMIENDO.
Si usas linux o si quieres acceder a los contenidos exclusivos sin tener el cd ni el cliente. Necesitas el psig que ya sabes donde se encuentra.
Haces la petición a
http://remote.opendisc.net/get_url.opd?
psig=99996581124
&uid=16
&sysdatetime=20090803_110249
&bogus=1864
&netf=LXX
&ver=2.8.0
&opsys=Win
&opsysver=6.0.768
&opsyslng=ESN
modificando el psig con el de tu album y el uid ( que es secuencial ) si quieres hacerte pasar por cualquier usuario existente. La URL que te devuelve la anterior petición es la que deberás visitar (es un redirect a otra).
En las vulnerabilidades via web que pueda tener el servicio ya no entro, que no es mi campo, pero vamos visto lo visto eso puede ser una juerga…
Como véis es una pijada, pero bueno como parece que se usa bastante y como no he visto nada escrito respecto al tema pues por si a alguien le es útil. Si alguno tiene algún cd de estos OpenDisc y quiere confirmar pues un comentario estaría «muy chido».
Pasad buen verano, que ya queda menos para Lacon…