Aujourd'hui, j'explorais un site Web utilisé pour suivre les notes des élèves et tout ce qui touche à l'école. Fondamentalement, comme un suivi des progrès scolaires pour votre enfant qui est utilisé par 90% des écoles de mon pays.
J'ai lancé le proxy Charles et y ai connecté mon téléphone et j'ai installé le certificat racine de Charles pour pouvoir utiliser https (le site l'utilise). Quoi qu'il en soit, je me suis connecté au site et j'ai vérifié ce que Charles a capturé.
Il a capturé un simple appel ajax avec 4 champs contenant toutes les informations de connexion. Voici une capture d'écran:
Tout est même étiqueté - uporabnik signifie "utilisateur" et geslo signifie "mot de passe" Donc, si je comprends bien (je ne suis vraiment qu'un débutant), tous ceux qui parviennent à capturer cela peuvent le regarder?
Est-ce possible uniquement avec un proxy ou Wireshark, par exemple, peut-il également le faire et simplement capturer des paquets via le wifi?
Mes hypothèses sont-elles vraies et si elles le sont, que dois-je faire?
Vous semblez fondamentalement mal comprendre ce que fait TLS.
TLS prend le trafic HTTP ordinaire ordinaire, le chiffre et ajoute des vérifications d'intégrité. Avec le certificat du serveur, cela garantit
Si vous regardiez la communication HTTP sous-jacente, vous verriez votre nom d'utilisateur et votre mot de passe en texte clair, car c'est ce que vous avez envoyé au serveur.
Si vous utilisez un proxy TLS tel que Charles, vous communiquez essentiellement avec le proxy et le proxy communique avec le serveur Web. Alors, qu'est-ce qui empêche un attaquant d'utiliser simplement un proxy TLS? Le certificat!
Lorsque vous avez installé le proxy TLS, le proxy a généré un nouveau certificat CA, que vous avez ensuite importé. Cela signifie que vous avez donné au proxy le pouvoir de créer un certificat pour tout domaine . Dans le but d'être un proxy, c'est très bien.
Un attaquant devrait cependant vous obliger à importer son certificat (ou voler la clé privée de la vôtre!) Afin que vous fassiez confiance aux certificats par leur proxy.
Non ce n'est pas. Tout fonctionne comme prévu. À la fin de la journée, lorsque vous envoyez votre nom d'utilisateur et votre mot de passe à un site Web, il doit en quelque sorte atteindre réellement ce site Web.
Comment pensez-vous que la plupart des sites Web gèrent la connexion? En envoyant des noms d'utilisateur et des mots de passe dans les données POST et en reconnaissant l'utilisateur connecté avec des cookies de session par la suite. il est tout aussi facile de comprendre que uporabnik
ou ugcbuzsq
est une variable qui porte des noms d'utilisateur.
C'est pourquoi la connexion est chiffrée à l'aide de TLS, et c'est aussi pourquoi vous n'avez pas pu voir ces informations avant d'installer le certificat racine du proxy Charles.