Tl; Dr: Ho trovato una seria minaccia alla sicurezza nel sistema di valutazione del mio dipartimento di matematica e non sono sicuro di come convincerli a prenderlo sul serio.
Ero annoiato durante una lezione, quindi ho deciso di testare il sistema di valutazione del dipartimento di matematica del mio Ateneo. Ho inserito il mio nome utente, lo chiamerò "Foo" e anche la mia password "Foo123". Il sistema ha effettuato l'accesso normalmente. Successivamente, ho usato "Foo" ancora come username e "Foo1234" come password. Con mia sorpresa, il sistema ha effettuato l'accesso! Ero molto incuriosito a questo punto e quindi ho provato di nuovo con "Foo123wkfjdbwkefbkwdhfbwkfbwkdbw" e di nuovo ha effettuato il login!
Penso che il dipartimento salvi la password in formato raw (invece di un hash) perché usa chiaramente una versione di x.contains (real_raw_password). Ad esempio, quando ho pubblicato "Foo123wkfjdbwkefbkwdhfbwkfbwkdbw", suppongo che il back-end abbia fatto qualcosa del tipo:
if ("Foo123wkfjdbwkefbkwdhfbwkfbwkdbw" .contains (ActualPasswordString)): Login () Questa è una minaccia alla sicurezza molto seria che penso che dovrebbero affrontare, sia perché 1) Memorizzano la password come testo grezzo che 2) Usano un .contains sulla stringa effettiva inviata, quando in realtà posso inviare una stringa con combinazioni diverse di password e restituirebbe true se in essa sono presenti ritorni di sottostringa.
Tuttavia, non sono sicuro di come affrontare il dipartimento e convincerli che devono affrontarlo. Qualche consiglio su come affrontarlo, specialmente che non è un dipartimento CS?