Vue lecture

WebGoat - Pour vous former au hacking éthique

Attention, si vous laissez tourner WebGoat sur votre machine, elle sera “extrêmement vulnérable aux attaques”. C’est en tout cas ce qui est écrit en gros sur la page de ce projet OWASP , et c’est pas pour faire joli car WebGoat est une application web délibérément pourrie, truffée de failles de sécurité, créée exprès pour que cous appreniez à les exploiter.

Et c’est génial !!

Car on a enfin un truc qui nous permet d’apprendre vraiment comment les hackers s’infiltrent dans les sites web, sans risquer de finir au tribunal. Parce que bon, scanner le site de votre voisin pour “apprendre”, c’est direct trois ans de prison et 100 000 euros d’amende. Alors qu’avec WebGoat, vous pouvez tout péter tranquille depuis chez vous.

WebGoat , c’est donc un projet open source maintenu par l’OWASP depuis des années qui vous propose uune application web qui ressemble à n’importe quel site lambda, sauf qu’elle est bourrée de vulnérabilités volontaires telles que des injections SQL, XSS, CSRF, contrôle d’accès défaillant… bref, toutes les saloperies du Top 10 OWASP sont là, prêtes à être exploitées.

Et WebGoat fonctionne comme un cours interactif car pour chaque vulnérabilité, vous avez trois étapes : d’abord on vous explique comment ça marche, ensuite vous devez l’exploiter vous-même via des exercices pratiques, et enfin on vous montre comment corriger le problème. On apprend en faisant !

D’après la doc officielle , WebGoat couvre presque toutes les vulnérabilités du Top 10 OWASP. Pour ceux qui ne savent pas, le Top 10 OWASP c’est LA référence mondiale des failles de sécurité web.

Au sein de WebGoat se cache aussi WebWolf, une application séparée qui simule la machine de l’attaquant. Ça tourne sur le port 9090 pendant que WebGoat tourne sur le 8080, comme ça, vous avez vraiment la séparation entre ce qui se passe côté victime et côté attaquant. WebWolf vous permet également d’uploader vos payloads ou outils, de recevoir des données exfiltrées, et même de simuler un serveur mail pour les attaques de phishing.

Et pour installer tout ça, le plus simple c’est Docker :

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat

Ou si vous préférez la version standalone avec Java :

java -Dfile.encoding=UTF-8 -jar webgoat-2025.3.jar

Une fois lancé, vous accédez à WebGoat sur http://localhost:8080/WebGoat et WebWolf sur http://localhost:9090/WebWolf. Vous vous créez un compte (c’est juste en local, pas de panique) et c’est parti pour les exercices !

Les leçons sont vraiment bien foutues. Prenez l’injection SQL par exemple. D’abord on vous montre comment une requête SQL mal protégée peut être détournée. Ensuite vous devez exploiter la faille pour voler des numéros de cartes bancaires (fausses, hein), et à la fin, on vous explique comment utiliser les prepared statements pour éviter ce genre de conneries.

Et n’allez pas croire que ça s’adresse uniquement aux pro. Non, les débutants ont des exercices guidés avec des indices, et les plus avancés ont des “challenges” sans aucune aide semblables à des CTF (Capture The Flag).

Et pour les développeurs, c’est vraiment un super outil pour comprendre pourquoi votre chef de projet vous casse encore les pieds avec la sécurité ! Car, croyez-moi, une fois que vous avez réussi à dumper toute une base de données avec une simple apostrophe dans un formulaire, vous ne regardez plus jamais les entrées utilisateur de la même façon.

Attention quand même, WebGoat n’est pas un jouet. Les techniques que vous apprenez sont réelles et fonctionneront sur de vrais sites mal sécurisés. D’ailleurs, l’OWASP est très clair là-dessus : “Si vous tentez ces techniques sans autorisation, vous allez très probablement vous faire choper”. Et n’oubliez pas, comme vous ne faites partie d’aucun parti politique, pour vous y’aura vraiment de la zonzon.

D’ailleurs, petite conseil, quand vous faites tourner WebGoat, coupez votre connexion internet ou au moins assurez-vous qu’il n’écoute que sur localhost, parce que si quelqu’un d’autre sur votre réseau découvre que vous avez une application volontairement vulnérable qui tourne… Disons que ça pourrait mal finir ;-).

Ah et WebGoat s’intègre super bien avec d’autres outils de sécurité. Ça permet du coup de se former aussi dans la foulée sur Burp Suite, OWASP ZAP, ou SQLMap.

Bref, installez WebGoat ce weekend et amusez-vous à tout casser. Vous m’en direz des nouvelles !!

Et un grand merci à Letsar pour l’info !

  •  

Introduction conceptuelle à la mécanique quantique #3, par Alice van Helden - YouTube

Franchement merci beaucoup pour ces vidéos. J'ai maintenant fini de suivre tout le cours et c'est vraiment ce genre de cours que je cherchais depuis longtemps. C'est une explications simple mais très complète de la physique quantique. Il y a 'tout ce qu'il faut, sans être obligé d'apprendre le (ou les) formalisme mathématique qui décrit la mécanique quantique.Trop souvent je vois de la vulgarisation trop simpliste, ou alors il faut carrément fait un cours universitaires complet pour aller plus loin. Là il y a le juste milieu.
J'ai appris beaucoup, notamment des points que je n'avais jamais entendu auparavant, comme le fait que l'énergie n'existe pas vraiment au niveau quantique ! C'est une représentation émergente, avec des conditions de transformation. Wouah. Ça me questionne sur le formalisme mathématique que l'on utilise. On devrait aller au delà des équations et décrire la physique quantique avec du code informatique, comme pour les transformations avec la conservation de l'énergie, on place les conditions pour garantir la conservation de l'énergie.
Puis j'ai découvert avec votre magnifique explication de l'expérience d'Alain Aspect que la non localité n'est pas la seule conclusion que l'on peut faire, mais que la rétro-causalité est aussi envisageable ! Très intéressant. C'est là que l'on voit que la vidéo date d'il y a 5 ans déjà et que depuis Aspect a reçu le prix Nobel.
Depuis j'ai aussi eu l'occasion de creuser la théorie de l'espace temps flexible de Philippe Guillemant, et je dois dire que j'aime bien l'idée du fonctionnement du temps un peu comme la métaphore du GPS avec un futur déjà conçu pour nous mener à une destination, mais modifiable hors de l'espace temps pour changer la destination et bifurquer sur un autre futur possible. On a ici une rétrocausalité qui me semble pas du tout problématique. Je ne vois pas d'obstacle majeur à voir ainsi l'expérience d'Aspect nous ouvrir la voie à la rétrocausalité plutôt qu'à la non localité. (voir les deux !!)
C'est aussi grâce à votre explication que j'ai compris le principe de fonctionnement d'une chambre à brouillard ! merci.
Dans votre cours, j'ai aussi beaucoup aimé la fin avec les différentes explications des interprétations de la mécanique quantique. Ce point n'est jamais abordé dans les vulgarisations ! C'est dommage. On voit ici que LA physique quantique n'existe pas. Mais que l'on a une série d'expériences qui nous montrent des faits. Que l'on a des principes de base comme la quantification. (qui a donné son nom à la "quantique") mais que le sens que l'on donne à tout ces faits ne fait pas consensus. Il y a l'interprétation de Copenhague qui est certes majoritaire. Mais là on comprend le flou autour de la physique quantique, quand la plupart des physiciens ne sont pas d'accord entre eux sur le sens de tout ça !!
Perso, j'ai un faible pour l'interprétation relationnelle de la mécanique quantique. Comme vous jusqu'à la préparation de ce cours, si j'ai bien compris. Vous dites que c'est à cause du "flou" du pourquoi du choix d'une particule ou d'une autre dans ce modèle que finalement cette interprétation ne vous convient plus tant que ça.
Là je rebondis sur l'idée de la rétrocausalité, c'est peut être une cause du futur qui nous influence dans le choix !? A méditer.
En tout cas c'est peut être une déformation professionnelle liées à mes connaissance sur les bases de données relationnelles, mais j'ai l'impression qu'on a ici un fonctionnement relationnel similaire.
Dans une base de données relationnelle on pratique la superposition d'état. Le temps n'existe pas. On a toute les données potentielles en même temps et ce n'est que lorsque l'utilisateur (l'observateur) paramètre et lance une requête SQL que l'on crée des jointures entre les tables qui représentes les objets et qu'on créer un ordre de représentation des données et une contextualisation des donnée en fonction de critères passé en paramètre. On linéarise les données pour les lire, d'une certaine manière on crée le temps. On manifeste une seule réalité à partir d'un énorme ensemble de potentialité. L'ordre dans lequel on fait les jointures entre les tables a aussi son importance comme en physique quantique.
Donc contrairement à ce qui est souvent avancé en vulgarisation, perso avec ce genre d'analogie, la physique quantique me semble intuitive. Ce qui est dur c'est le formalisme mathématique !
A cogiter... merci


Permalien
  •  

Application libre en ligne de suivi des aides aux écoliers avec SQLPage

ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés.
Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQLPage, qui évolue rapidement, mérite d’être plus largement connue.

Jusqu’à présent je n’avais jamais osé me lancer dans ce genre de développements — principalement à cause de la sécurisation des accès et à la gestion de bases de données — mais SQLPage est arrivé…

    Sommaire

    Besoins et cahier des charges

    Le directeur d’une grosse école (13 classes + ULIS) avait besoin de pouvoir suivre pluriannuellement les différentes aides mises en place pour les élèves rencontrant des difficultés, ceci afin que les enseignant⋅es (dont les membres du RASED) disposent d’un historique pour voir ce qui avait déjà été proposé et ainsi décider ce que l’on pourrait mettre en place sans perdre de temps ni redite. Bref, l’idée était de gagner en temps et en efficacité.

    Au niveau d’une seule école, un tableur LibreOffice Calc pouvait très bien faire l’affaire et suffire (ce classeur existe d’ailleurs) mais il ne pouvait pas être complété à distance et de façon collaborative facilement :
    Classeur LibreOffice Calc de suivi
    On aurait pu mettre en place un classeur sur le Nuage-Nextcloud des Apps Éducation proposé par l’Éducation nationale et travailler de façon collaborative en ligne ou en drive (pour profiter des macros). Mais cette solution n’est pas aisée à mettre en place, avec des problèmes de synchronisation et des conflits de version de fichiers (je le sais par expérience, car nous gérons l’absentéisme de cette façon et ça demande un gros accompagnement, chaque classe ayant son propre classeur que l’on doit retravailler par la suite pour faire des synthèses d’école).

    L’idée était donc de disposer d’une application Web, en ligne pour que les enseignant⋅es puissent intervenir, compléter les données facilement et directement.
    L’avantage de cette solution était aussi de disposer d’une application unique pour étendre par la suite son utilisation aux 4 écoles de la ville (voire d’une circonscription) si le projet est concluant : en effet, les infos des élèves de maternelle suivraient lors du passage à l’école élémentaire.
    Seulement voilà, se posent pas mal de contraintes notamment par rapport à la sécurisation des données et au niveau du RGPD, l’outil envisagé contenant des informations sensibles. Il était impossible d’envisager un développement en Html/CSS/Javascript/PHP de zéro (manque de temps et de compétences). Et c’est là, que j’ai découvert l’existence de SQLPage qui paraissait répondre à nos inquiétudes avec des accès sécurisés, tout en étant à la portée de « débutant⋅es », à travers le récit de l’auteur de l’application « École Inclusive ».

    Début de l’aventure

    L’application « École Inclusive », bien que conçue pour le second degré, pouvait être adaptée à nos besoins plus modestes et a donc servi de base de départ : c’est beaucoup plus facile de partir de l’existant que d’une page blanche où il faut tout construire. Il s’est avéré que nous n’avions pas besoin de toutes les fonctionnalités et qu’il a fallu reprendre les logiques de fonctionnement mais la base étant là, c’était très rassurant d’autant que l'auteur de « École Inclusive » et le concepteur de SQLPage, très disponibles, étaient là pour m’éclairer, me conseiller ou rajouter des fonctionnalités au fil de mes demandes via les pages GitHub de leur projet respectif. Il faut rajouter que le site de SQLPage, conçu avec SQLPage ;-), regorge de ressources avec une documentation (en anglais) très claire et facilitante avec des exemples.
    Il est vrai que ce concept de programmation est assez déstabilisant au début : ne passer que par des fichiers .sql (ou presque) pour développer un site Web, ça paraît inadapté. Mais, une fois qu’on est rentré dedans, on se rend compte que pour le type d’application qu’on recherchait, c’est tout bonnement bluffant et terriblement efficace.
    Ce qui est aussi facilitant, c’est la possibilité d’utiliser des bases sqlite ne nécessitant pas la mise en place d’un serveur de type MySQL ou PostGreSQL rajoutant de la complexité. Mais SQLPage fonctionne aussi avec ces serveurs si on en a l’utilité : ce point est intéressant, car le temps consacré pour se former à SQLPage pourra être réinvesti avec d’autres types de bases de données.

    Matériel, données techniques et application ASDAEL

    Pour des tests les plus proches du fonctionnement prévu (on verra que ça changera), j’ai utilisé un NAS perso Synology 713+ sous DSM 7.1 avec un accès extérieur. Toutes les infos sont là pour ceux et celles que ça intéresse : https://lofurol.fr/joomla/logiciels-libres/104-bases-de-donnees/349-sqlpage-utilisation-sur-un-nas-synology-avec-docker-et-mysql-postgresql-sqlite.
    Toujours dans un souci de partage, les sources de l’application de suivi des aides sont disponibles sur la « Forge des communs numériques éducatifs » ou Forge Éduc, le GitLab mis à disposition par l’Éducation nationale pour favoriser le partage et le développement de ressources numériques pour l’enseignement.
    Source du projet: https://forge.apps.education.fr/thierrym/suivi-aides-eleves-ecoles

    Utilisation locale due au RGPD et à la sécurisation des données

    Cette application n’ayant pas reçu de soutien officiel et vu qu’elle contient des données sensibles sur les élèves (bien que ces données ne soient accessibles qu’aux seul⋅es enseignant⋅es concerné⋅es par le suivi des élèves), il a été décidé de ne pas exposer l’application sur Internet, comme prévu initialement. Elle sera donc installée sur un ordinateur localement sans accès de l’extérieur le temps de la tester. Après, il sera toujours possible d’évoluer vers une utilisation réellement en ligne si les essais sont concluants (et avec un audit sur la sécurité).
    Et là, encore une fois, l’application est très bien faite, car elle fait office de serveur web et il suffit de saisir son adresse ip sur le port 8080 pour y accéder à partir d’un autre ordinateur sur le même réseau. On ne peut pas faire plus simple (pas besoin de se monter un serveur Apache/Ngnix) !!!

    Pour lancer l’expérimentation, j’ai récupéré un “vieil” ordinateur HP 260 G2 Mini (Intel Pentium 4405U, 4 Go de Ram et HD de 100 Go) sur lequel j’ai installé Ubuntu 24.04 Server (avec accès SSH) avec le bureau Mate et Docker pour faire fonctionner les conteneurs Portainer et Adminer pour éventuellement agir sur la base de données SQLite.
    J’ai ensuite installé SQLPage avec mes fichiers dans un dossier « ASDAEL » à la racine de mon home puis configurer un démarrage automatique lançant SQLPage et Firefox pointant vers la page « localhost:8080 ».

    Captures d’écran

    Structure de la base de données
    Structure de la base de données

    Page d’accueil :
    Accueil

    Page de connexion :
    Page de connexion

    Localisation des écoles :
    Liste des écoles

    Liste des élèves suivi⋅es :
    Liste des élèves suivi⋅es

    Fiche individuelle de suivi :
    Fiche individuelle de suivi

    Vue synthétique du parcours de l’élève :
    Vue synthétique

    Page de paramétrage :
    Page de paramétrage

    Perspectives

    Avec l’arrivée du Livret de Parcours Inclusif (LPI) peut-être que ce genre d’applications ne sera plus utile… d’autant qu’elles n’ont aucun soutien institutionnel et qu’en l’état actuel elles ne peuvent être utilisées que localement, ce qui réduit pas mal leur intérêt.
    Mais l’idée de ASDAEL est d’obtenir rapidement une vision synthétique des différentes aides mises en place pour l’ensemble des élèves tout au long des années en facilitant leurs saisies, ce que ne permettra certainement pas le LPI.
    À suivre… ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •