diff --git a/README.md b/README.md index 975aeb1c..34c6846b 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# e59.fr +# e59.fr version 1.4 Le site officiel du club réseaux disponible à l'adresse https://e59.fr/ @@ -31,7 +31,7 @@ Le site officiel du club réseaux disponible à l'adresse https://e59.fr/ - ```userID``` - ```userName``` - ```userDisplayName``` -- ```userLevel``` +- ```userRole``` - ```userAccreditation``` # Includes diff --git a/config/global.ini b/config/global.ini index 479b6ca7..b8d20b34 100755 --- a/config/global.ini +++ b/config/global.ini @@ -1,40 +1,34 @@ [root] -pageURL = "http://srv1.intra.e59.fr:8088/" +pageURL = "https://e59.fr/" filePath = "/var/www/e59/" +[social] +instagram = "https://instagram.com/e59.club" +linkedin = "https://linkedin.com/company/e59/" +x = "https://twitter.com/e59_club" +youtube = "https://www.youtube.com/@e59-club" + [sql] databaseName = "E59" databaseUser = "root" -databasePass = "Broadca@Storm" +databasePass = "Broadca@Storm_SQL" databaseHost = "127.0.0.1" +[recaptcha] +siteKey = "6LeoNrMpAAAAALnwweMo-JUMu7VvJlR6JUQW1fqy" +secretKey = "6LeoNrMpAAAAAAqmZpuvcFwuRhglX0rkI2rcdvw9" + [main] -pageTitle = "Club Réseaux - E59" +pageTitle = "E59" +pageName = "E59" headerTitle = "E59" headerSubtitle = "Club Réseaux" -footerText = "© Jan BELLON - E59 v1.2" - -[confidentialLevels] -0 = "E59i-P (Public)" -1 = "E59i-M (Membres)" -2 = "E59i-R (Responsables)" -3 = "E59i-D (Direction)" - -[userLevels] -0 = "Invité" -1 = "Membre" -2 = "Responsable" -3 = "Directeur" - -[badges] -1 = '' -2 = '' -3 = '' +footerText = "© Jan BELLON - E59 v1.6" [darkThemes] -0 = '--text: hsl(0, 0%, 80%);--background: hsl(0, 0%, 15%);--panel-background: hsl(0, 0%, 10%);--buttons: hsl(0, 0%, 5%)' -1 = '--text: hsl(208, 100%, 96%); --background: hsl(215, 21%, 11%); --panel-background: hsl(216, 28%, 7%); --buttons: hsl(216, 28%, 7%)' +0 = '.body {--text: #ffffff; --background: #0e0e0e; --panel-background: #0e0e0e; --buttons: #C2694C} textarea, .form, .select-input, .text-input, .file-input input {border:1px solid #a0a0a0}' +1 = '.body {--text: hsl(208, 100%, 96%); --background: hsl(215, 21%, 11%); --panel-background: hsl(216, 28%, 7%); --buttons: hsl(216, 28%, 7%)}' +2 = '.body {--text: hsl(160, 65%, 95%); --background: hsl(160, 65%, 3%); --panel-background: hsl(160, 65%, 3%); --buttons: hsl(160, 65%, 3%)} .text-input, .file-input input, .select-input, .select-input select, textarea, .button, button, .form {border:1px solid var(--text)}' [lightThemes] -0 = '--text: hsl(0, 0%, 20%);--background: hsl(0, 0%, 100%);--panel-background: hsl(0, 0%, 100%);--buttons: hsl(0, 0%, 100%)' -1 = '--text: hsl(208, 100%, 0%); --background: hsl(215, 21%, 100%); --panel-background: hsl(216, 28%, 95%); --buttons: hsl(216, 28%, 95%)' +0 = '.body {--text: #0e0e0e; --background: #ffffff; --panel-background: #ffffff; --buttons: #fafafa} textarea, .button, button, .form, .select-input select, .select-input, .text-input, .file-input input {border:1px solid #a0a0a0}' \ No newline at end of file diff --git a/content/articles/1.md b/content/articles/1.md index b5fb8cee..57d2ba37 100755 --- a/content/articles/1.md +++ b/content/articles/1.md @@ -1,9 +1,8 @@ -##De nouveaux locaux
-Après avoir discuté avec l'administration de notre IUT, nous avons découvert la partie humaine qui assure sa gestion, avec laquelle nous avons eu le plaisir de sympathiser. Nous avons découvert les prérequis administratifs nécessaires (Déclaration Association Loi 1901, CNIL, Déclaration à l'administration de notre IUT) à notre émancipation. Il ne nous reste plus qu'à projeter !
-
-##Des projets intéressants
-De nombreuses idées que nous aurions aimé concrétiser fusent dans nos têtes. Notre association nous permettra de livrer notre plein potentiel dans ces projets, en partageant nos connaissances, et en les faisant naître dans le monde réel (architecture de routeur *custom*, étude de modèles d'intelligence artificielle, représentation informatique de phénomène physiques, étude de la sécurité des réseaux mobiles... Les idées ne manquent pas !)
-
-##Un travail public
-Nous avons travaillé à la mise en place d'une plateforme collaborative sur laquelle seront déposés nos projets. En espérant que vous trouverez nos projets intéressants ! [Gitlab de la e59](https://gitlab.e59.fr/club-reseaux)
-
\ No newline at end of file +##De nouveaux locaux
+Après avoir discuté avec l'administration de notre IUT, nous avons découvert la partie humaine qui assure sa gestion, avec laquelle nous avons eu le plaisir de sympathiser. Nous avons découvert les prérequis administratifs nécessaires (Déclaration Association Loi 1901, CNIL, Déclaration à l'administration de notre IUT) à notre émancipation. Il ne nous reste plus qu'à projeter !
+
+##Des projets intéressants
+De nombreuses idées que nous aurions aimé concrétiser fusent dans nos têtes. Notre association nous permettra de livrer notre plein potentiel dans ces projets, en partageant nos connaissances, et en les faisant naître dans le monde réel (architecture de routeur *custom*, étude de modèles d'intelligence artificielle, représentation informatique de phénomène physiques, étude de la sécurité des réseaux mobiles... Les idées ne manquent pas !)
+
+##Un travail public
+Nous avons travaillé à la mise en place d'une plateforme collaborative sur laquelle seront déposés nos projets. En espérant que vous trouverez nos projets intéressants ! [Gitlab de la e59](https://gitlab.e59.fr/club-reseaux)
diff --git a/content/articles/10.md b/content/articles/10.md index 85395e78..0a39b531 100755 --- a/content/articles/10.md +++ b/content/articles/10.md @@ -1,15 +1,15 @@ -1. **Délibérer en Conseil des Ministres** : Avant de procéder, organise une délibération au sein du Groupe concernant ton intention d'utiliser l'article 49, alinéa 3 de la Constitution. Cette étape est essentielle pour formaliser la décision au plus haut niveau de l'exécutif.
-
-2. **Annoncer à l'Assemblée Nationale** : Après la délibération, annonce au groupe ton intention d'engager la responsabilité du gouvernement sur un texte de loi en te référant explicitement à l'article 49.3. Cette annonce peut être faite par toi-même ou par un ministre que tu auras désigné pour cette tâche.
-
-3. **Délai de Réflexion** : Suite à ton annonce, un délai de 24 heures s'ouvre. Pendant cette période, les autres membres du groupe ont la possibilité de déposer une motion de censure. Ce délai leur permet de considérer l'opportunité d'une telle action pour s'opposer à l'utilisation de l'article 49.3.
-
-4. **Dépôt d'une Motion de Censure (Optionnel)** : Si des motions de censure sont déposées pendant ce délai, elles doivent être signées par au moins un dixième des membres de l'Assemblée nationale. Ces motions sont ensuite discutées en séance plénière.
-
-5. **Vote de la Motion de Censure** : Pour qu'une motion de censure soit adoptée, elle doit recueillir la majorité absolue des membres du groupe, les abstentions n'étant pas prises en compte. Si aucune motion n'est adoptée, le texte sur lequel tu as engagé la responsabilité du gouvernement est considéré comme accepté.
-
-6. **Échec de la Motion de Censure** : Si aucune motion n'est adoptée ou si aucune n'est déposée, le texte est considéré comme adopté par le groupe. C'est une victoire pour toi et ton gouvernement, car le texte de loi passe sans avoir besoin d'un vote explicite.
-
-7. **Adoption Définitive du Texte** : Une fois les motions de censure écartées ou si aucune n'a été déposée, le texte que tu as soutenu est adopté. Il continue ensuite son parcours législatif habituel, soit en passant au Sénat si nécessaire, soit directement vers la promulgation.
-
+1. **Délibérer en Conseil des Ministres** : Avant de procéder, organise une délibération au sein du Groupe concernant ton intention d'utiliser l'article 49, alinéa 3 de la Constitution. Cette étape est essentielle pour formaliser la décision au plus haut niveau de l'exécutif.
+
+2. **Annoncer à l'Assemblée Nationale** : Après la délibération, annonce au groupe ton intention d'engager la responsabilité du gouvernement sur un texte de loi en te référant explicitement à l'article 49.3. Cette annonce peut être faite par toi-même ou par un ministre que tu auras désigné pour cette tâche.
+
+3. **Délai de Réflexion** : Suite à ton annonce, un délai de 24 heures s'ouvre. Pendant cette période, les autres membres du groupe ont la possibilité de déposer une motion de censure. Ce délai leur permet de considérer l'opportunité d'une telle action pour s'opposer à l'utilisation de l'article 49.3.
+
+4. **Dépôt d'une Motion de Censure (Optionnel)** : Si des motions de censure sont déposées pendant ce délai, elles doivent être signées par au moins un dixième des membres de l'Assemblée nationale. Ces motions sont ensuite discutées en séance plénière.
+
+5. **Vote de la Motion de Censure** : Pour qu'une motion de censure soit adoptée, elle doit recueillir la majorité absolue des membres du groupe, les abstentions n'étant pas prises en compte. Si aucune motion n'est adoptée, le texte sur lequel tu as engagé la responsabilité du gouvernement est considéré comme accepté.
+
+6. **Échec de la Motion de Censure** : Si aucune motion n'est adoptée ou si aucune n'est déposée, le texte est considéré comme adopté par le groupe. C'est une victoire pour toi et ton gouvernement, car le texte de loi passe sans avoir besoin d'un vote explicite.
+
+7. **Adoption Définitive du Texte** : Une fois les motions de censure écartées ou si aucune n'a été déposée, le texte que tu as soutenu est adopté. Il continue ensuite son parcours législatif habituel, soit en passant au Sénat si nécessaire, soit directement vers la promulgation.
+
J'espère que ce tutoriel te sera utile, et n'oublie pas, le secret réside dans la procédure ! \ No newline at end of file diff --git a/content/articles/11.md b/content/articles/11.md deleted file mode 100755 index 50fa2bf4..00000000 --- a/content/articles/11.md +++ /dev/null @@ -1,5 +0,0 @@ -#Changelog update 1.1
-- Les utilisateurs membres peuvent publier des articles, pour cela il suffit de se rendre dans [Profil->Publier un article](upload.php)
-- En haut de chaque article se trouve une petite pastille contenant le nom de l'auteur, en cliquant dessus, on peut aller voir son profil.
-- Les articles ont des miniatures qui peuvent être modifiées dans [Edition](editpage.php).
-- Système de certification des utilisateurs avec des pastilles comme sur Twitter (Certifié : bleu, Directeur : jaune) \ No newline at end of file diff --git a/content/articles/12.md b/content/articles/12.md deleted file mode 100755 index 3c6b4e3c..00000000 --- a/content/articles/12.md +++ /dev/null @@ -1,8 +0,0 @@ -#Changelog Update 1.2 - -- Interface utilisateur améliorée -- Liens des pages modifiés -- Code source mieux compréhensible -- Failles de sécurité corrigées -- Transmission de la propriété des articles à Deleted_User lors de la suppression du compte -- Insersion d'émojis possible \ No newline at end of file diff --git a/content/articles/16.md b/content/articles/16.md new file mode 100644 index 00000000..a4b11e2f --- /dev/null +++ b/content/articles/16.md @@ -0,0 +1,13 @@ +##Visite du Forum InCyber à Lille
+Ce Mardi 26 mars, l'équipe de la E59 est allée visiter le forum International de Cybersécurité à Lille.
+Cette journée a été une superbe expérience pour nous tous et nous avons eu l'occasion d'échanger avec différents acteurs de la cyber.
+##Nouvelle fonctionnalité sur GitHub
+Lors de ce forum, GitHub a présenté une nouvelle fonctionnalité qui permet d'identifier des failles dans du code. Cette fonctionnalité devrait sortir prochainement
+##Echange avec la CNIL
+Nous avons eu l'occasion d'échanger avec un représentant de la CNIL, nous lui avons posé diverses questions concernant la gestion des donnés sur nos différentes infrastructures (sites web, vidéosurveillance). Cela nous a permis d'avoir une vision plus clair de nos responsabilités vis à vis des données personnelles que nous gérons.
+##Yubico
+Yubico nous ont présenté leur Yubikey, une solution d'authentification par clé. Nous sommes intéressés par cette solution pour nos systèmes d'authentification sur notre infrastructure.
+##Les outils de forensique de la Douane
+La Douane nous a présenté leurs outils de forensique permettant de récupérer le contenu d'un disque dur. Ils ne nous ont pas donné de précisions détaillées quant au fonctionnement de ces systèmes.
+##Thalès pirate un microprocesseur avec un oscilloscope.
+Thalès nous a présenté leur système permettant de pirater un microprocesseur faisant tourner de l'IA. Ce système est composé d'un capteur sensible aux variations électromagnétiques tenu par un bras et posé sur une zone précise du microprocesseur. Ce capteur est relié à un oscilloscope qui affiche les variations électromagnétiques sur un écran. En retrouvant des motifs répétitifs de variations, il est possible de tromper le comportement de la puce pour changer le résultat de sortie de la chaine neuronale. Il serait donc possible par exemple de tromper un système de reconnaissance faciale en lui faisant croire que nous sommes une personne différente ou encore forcer une authentification. \ No newline at end of file diff --git a/content/articles/17.md b/content/articles/17.md new file mode 100644 index 00000000..d17c785d --- /dev/null +++ b/content/articles/17.md @@ -0,0 +1,22 @@ +##Une infra on premise
+Notre objectif est d'avoir une infrastructure avec 0 frais d'abonnement, nous souhaitons donc nous séparer de nos VPS dans le but de tout héberger en E59.
+
+##Accès internet
+Notre accès internet actuel passe par Renater. Les nombreux blocages ainsi que les coupures occasionnelles de l'accès internet nous ont poussé à prévoir des solutions pour nous créer un accès internet indépendant de Renater.
+Emilien a eu l'idée ambitieuse de demander un accès internet direct à l'IUT et une adresse IP publique pour la E59. Il est confiant quant au fait que Madame Moreau ait la possibilité de répondre à notre demande.
+Jan quant à lui est moins optimiste et il est nécéssaire selon lui de prévoir un plan B au cas ou L'IUT nous refuse la demande.
+
+##Cybersécurité 0 trust
+Emilien suivi par Eliott et Akram, souhaite mettre en place une infrastructure 0 trust avec 3 firewall, un bastion et un reverse proxy. Jan et Lucas quant à eux ne sont pas totalement convaincus de l'idée affirmant que c'est une approche paranoïaque abusive.
+Il est cependant important de souligner le fait que c'est Emilien, Eliott et Akram les responsables du réseau et qu'elles sont prêtes à donner du temps pour mettre en place l'infrastructure d'Emilien.
+Jan et Lucas ne se sont donc pas opposés à l'idée et souhaitent bonne chance à Emilien et son équipe pour mettre en place l'infrastructure.
+
+##Trop de brassage d'air selon Jan
+Jan a fait un coup de gueule sur teams dans la soirée, affirmant que ce n'est pas en ajoutant des étages à la tour qu'on fait avancer le projet.
+Selon lui, tout le monde a déjà une vision du projet final et, pour être efficace, il faut juste passer à l'action et commencer le projet en faisant des planifications court terme des actions.
+
+##Pour conclure..
+L'équipe de la E59 est pleine d'idées et a beaucoup d'ambition.
+Le 5 avril, aura lieu la première assemblée générale durant laquelle, les personnes impliquées dans le projet de la E59 auront l'occasion de mettre leur point de vue sur la table et échanger à propos de la création de l'Association E59.
+Ce sera aussi l'occasion de planifier les taches pour créer les statuts et trouver une assurance.
+Nous nous retrouverons Vendredi, pour faire un point sur l'assemblée générale numéro 1. \ No newline at end of file diff --git a/content/articles/2.md b/content/articles/2.md index 69ed62cd..3479a953 100755 --- a/content/articles/2.md +++ b/content/articles/2.md @@ -1,19 +1,18 @@ -# SpyLab, une plateforme de CTF
-
-La plateforme de CTF SpyLab est displonible sur le gitlab de la E59.
-Ce projet a été mené dans le cadre de la SAE Pentest, un projet universitaire dirigé par Monsieur Guillemin.
-Nous remercions tous les participants de ce projet pour leur contribution.
-La cohésion d'équipe a été excellente, ce qui nous a permis de faire une plateforme propre et stable.
-
-Voici la liste des participants :
- - Emilien GABON (Chef de projet)
- - Emiott CHARBOTEL (Développeur & Administrateur système)
- - Jan BELLON (Développeur & Designer)
- - Youness ID HAMA (Développeur & Administrateur)
- - Lina RASHDAN (Développeuse)
- - Maëlyne MONTOUT (Développeuse)
- - Akram SHAL (Développeur)
-
-Le code source de la plateforme est disponible ici =>
-
+#SpyLab, une plateforme de CTF
+La plateforme de CTF SpyLab est displonible sur le gitlab de la E59.
+Ce projet a été mené dans le cadre de la SAE Pentest, un projet universitaire dirigé par Monsieur Guillemin.
+Nous remercions tous les participants de ce projet pour leur contribution.
+La cohésion d'équipe a été excellente, ce qui nous a permis de faire une plateforme propre et stable.
+
+Voici la liste des participants :
+ - Emilien GABON (Chef de projet)
+ - Emiott CHARBOTEL (Développeur & Administrateur système)
+ - Jan BELLON (Développeur & Designer)
+ - Youness ID HAMA (Développeur & Administrateur)
+ - Lina RASHDAN (Développeuse)
+ - Maëlyne MONTOUT (Développeuse)
+ - Akram SHAL (Développeur)
+
+Le code source de la plateforme est disponible ici =>
+
Pour toute question adressez vous à [Jan BELLON](mailto:jan@intra.e59.fr) \ No newline at end of file diff --git a/content/articles/3.md b/content/articles/3.md index dbc59ed5..34ebd106 100755 --- a/content/articles/3.md +++ b/content/articles/3.md @@ -1,15 +1,15 @@ -#Tâches à faire
-
-##Administratif
-
-- Domicilier l'Association, trouver une boîte aux lettres.
-- Rédiger les statuts
-- Trouver une Banque et une Assurance
-- Trouver un endroit où stocker les documents administratifs
-
-##Infrastructure
-
-- Créer un Nextcloud pour stocker les documents administratifs
-- Créer un coffre Bitwarden pour les mots de passe des équipements de la E59.
-- Créer la E59-INFRA-3
+#Tâches à faire
+
+##Administratif
+
+- Domicilier l'Association, trouver une boîte aux lettres.
+- Rédiger les statuts
+- Trouver une Banque et une Assurance
+- Trouver un endroit où stocker les documents administratifs
+
+##Infrastructure
+
+- Créer un Nextcloud pour stocker les documents administratifs
+- Créer un coffre Bitwarden pour les mots de passe des équipements de la E59.
+- Créer la E59-INFRA-3
- Déclarer les Caméras à la CNIL \ No newline at end of file diff --git a/content/articles/5.md b/content/articles/5.md index 56890bae..68ce45bb 100755 --- a/content/articles/5.md +++ b/content/articles/5.md @@ -1,6 +1,6 @@ -#Connaissez-vous l'attaque informatique du 11 septembre ?
-Aussi connue sous le nom PCDoS (Plane Crash Denial of Service), cette faille est une faille 0day patchée grâce au plan vigipirate.
-Cette attaque consiste à faire crasher un avion sur un datacenter pour le mettre hors service.
-
-Son nom provient de sa première utilisation le 11 septembre 2001, cette attaque a été utilisée contre les Etats-Unis.
+#Connaissez-vous l'attaque informatique du 11 septembre ?
+Aussi connue sous le nom PCDoS (Plane Crash Denial of Service), cette faille est une faille 0day patchée grâce au plan vigipirate.
+Cette attaque consiste à faire crasher un avion sur un datacenter pour le mettre hors service.
+
+Son nom provient de sa première utilisation le 11 septembre 2001, cette attaque a été utilisée contre les Etats-Unis.
Depuis, cette faille a été patchée en renforçant les contrôles de sécurité dans les aéroports et dans les avions. \ No newline at end of file diff --git a/content/articles/6.md b/content/articles/6.md index 70e13128..660b8d52 100755 --- a/content/articles/6.md +++ b/content/articles/6.md @@ -1,24 +1,24 @@ -#Rapport Pentest : WDoS
-
-##Introduction
-Dans le cadre de notre évaluation de sécurité, nous avons réalisé une attaque de pentesting physique simulée sur les infrastructures réseau de l'entreprise.
-L'objectif de cette attaque était de tester la résistance des équipements réseau face à une attaque de type DoS (Denial of Service) en utilisant une méthode peu conventionnelle :
-l'utilisation d'eau dans un port PoE (Power Over Ethernet).
-Cette attaque est appelée Water Denial of Service
-
-##Description de l'attaque
-Pour mener à bien cette attaque, nous avons utilisé un injecteur d'eau spécialement conçu pour les ports POE. Nous avons injecté de l'eau dans le port POE d'un switch réseau, ce qui a provoqué un court-circuit et une panne de courant sur l'équipement ciblé. Cette panne de courant a entraîné une interruption de service pour tous les équipements connectés au switch, rendant ainsi le réseau indisponible pendant plusieurs minutes.
-
-##Résultats de l'attaque
-L'attaque a permis de mettre en évidence une vulnérabilité des équipements réseau face à une attaque physique de type DDoS.
-Bien que l'utilisation d'eau dans un port POE soit une méthode peu conventionnelle, elle s'est avérée efficace pour perturber le fonctionnement du réseau.
-
-##Recommandations
-Afin de se prémunir contre ce type d'attaque, nous recommandons aux entreprises de mettre en place des mesures de sécurité physique renforcées pour protéger les équipements réseau.
-Cela peut inclure l'utilisation de boîtiers de protection pour les ports POE, la mise en place de caméras de surveillance et de systèmes d'alerte en cas d'intrusion physique.
-
-Il est également recommandé de mettre en place des mesures de redondance pour les équipements réseau critiques, afin de minimiser l'impact d'une éventuelle panne de courant ou d'une interruption de service.
-
-##Conclusion
-Cette attaque simulée de pentesting physique a permis de mettre en évidence une vulnérabilité des équipements réseau face à une attaque de type DDoS utilisant une méthode peu conventionnelle.
+#Rapport Pentest : WDoS
+
+##Introduction
+Dans le cadre de notre évaluation de sécurité, nous avons réalisé une attaque de pentesting physique simulée sur les infrastructures réseau de l'entreprise.
+L'objectif de cette attaque était de tester la résistance des équipements réseau face à une attaque de type DoS (Denial of Service) en utilisant une méthode peu conventionnelle :
+l'utilisation d'eau dans un port PoE (Power Over Ethernet).
+Cette attaque est appelée Water Denial of Service
+
+##Description de l'attaque
+Pour mener à bien cette attaque, nous avons utilisé un injecteur d'eau spécialement conçu pour les ports POE. Nous avons injecté de l'eau dans le port POE d'un switch réseau, ce qui a provoqué un court-circuit et une panne de courant sur l'équipement ciblé. Cette panne de courant a entraîné une interruption de service pour tous les équipements connectés au switch, rendant ainsi le réseau indisponible pendant plusieurs minutes.
+
+##Résultats de l'attaque
+L'attaque a permis de mettre en évidence une vulnérabilité des équipements réseau face à une attaque physique de type DDoS.
+Bien que l'utilisation d'eau dans un port POE soit une méthode peu conventionnelle, elle s'est avérée efficace pour perturber le fonctionnement du réseau.
+
+##Recommandations
+Afin de se prémunir contre ce type d'attaque, nous recommandons aux entreprises de mettre en place des mesures de sécurité physique renforcées pour protéger les équipements réseau.
+Cela peut inclure l'utilisation de boîtiers de protection pour les ports POE, la mise en place de caméras de surveillance et de systèmes d'alerte en cas d'intrusion physique.
+
+Il est également recommandé de mettre en place des mesures de redondance pour les équipements réseau critiques, afin de minimiser l'impact d'une éventuelle panne de courant ou d'une interruption de service.
+
+##Conclusion
+Cette attaque simulée de pentesting physique a permis de mettre en évidence une vulnérabilité des équipements réseau face à une attaque de type DDoS utilisant une méthode peu conventionnelle.
Les entreprises doivent donc être conscientes de ce type de risque et mettre en place des mesures de sécurité physique et de redondance appropriées pour protéger leurs infrastructures réseau. \ No newline at end of file diff --git a/content/articles/7.md b/content/articles/7.md index 13aadcb4..6ce716aa 100755 --- a/content/articles/7.md +++ b/content/articles/7.md @@ -1,29 +1,29 @@ -# Rapport d'incident - Simulation d'attaque PCDoS à grande échelle par crash d'avion dans un centre de données
-
-##Introduction
-Le présent rapport détaille un événement impliquant une tentative d'attaque par déni de service (DoS) non conventionnelle et à grande échelle sur un centre de données.
-L'objectif de ce rapport est de présenter une analyse approfondie de l'incident, des méthodes utilisées par les pirates informatiques, des mesures prises en réponse et des recommandations pour prévenir de futures attaques similaires.
-
-##Description de l'incident
-Le 11/9/2024, plusieurs avions de ligne civils ont été détournés par un groupe de pirates informatiques non identifiés dans le but présumé de provoquer des crashs coordonnés dans divers centres de données appartenant à l'association E59.
-Les avions, transportant un total de 789 passagers, ont été détournés peu après leur décollage de l'aéro-porc de Vélizy.
-Les pirates de l'air ont pris le contrôle des avions et ont modifié leurs trajectoires de vol pour qu'ils s'écrasent sur les centres de données ciblés.
-
-##Méthodologie des pirates informatiques
-Les pirates informatiques ont utilisé une combinaison de techniques de piratage avancées et de tactiques de guerre non conventionnelles pour mener cette attaque à grande échelle.
-Tout d'abord, ils ont exploité des vulnérabilités dans les systèmes de contrôle aérien pour prendre le contrôle des avions.
-Ensuite, ils ont utilisé des logiciels malveillants pour désactiver les systèmes de sécurité et de communication des avions, empêchant ainsi les pilotes et les autorités de reprendre le contrôle.
-
-L'objectif principal des pirates informatiques était de créer une perturbation massive des services en ligne en ciblant les centres de données, ce qui entraînerait des pertes financières importantes et une atteinte à la réputation pour les entreprises concernées.
-De plus, en utilisant des avions de ligne civils comme armes, les pirates informatiques cherchaient à provoquer la panique et le chaos à grande échelle, ainsi qu'à exploiter les faiblesses des infrastructures critiques.
-
-##Réponse à l'incident
-Les autorités compétentes ont été rapidement informées de la situation et ont mis en œuvre des protocoles d'urgence pour intercepter les avions et empêcher les crashs imminents.
-Des avions de chasse ont été déployés pour escorter les avions détournés et, après avoir évalué la situation, ont pris la décision d'abattre les avions dans des zones non peuplées pour éviter des pertes civiles plus importantes.
-
-Les équipes de sécurité des centres de données ciblés ont été informées de la menace potentielle et ont pris des mesures préventives pour protéger les infrastructures critiques.
-Cela comprenait la mise en œuvre de protocoles de sauvegarde des données, le déploiement de mesures de sécurité physique supplémentaires et la coordination avec les autorités locales.
-
-##Conséquences
-Bien que l'attaque ait été déjouée et que les centres de données n'aient subi aucun dommage physique, l'incident a eu des répercussions importantes.
+# Rapport d'incident - Simulation d'attaque PCDoS à grande échelle par crash d'avion dans un centre de données
+
+##Introduction
+Le présent rapport détaille un événement impliquant une tentative d'attaque par déni de service (DoS) non conventionnelle et à grande échelle sur un centre de données.
+L'objectif de ce rapport est de présenter une analyse approfondie de l'incident, des méthodes utilisées par les pirates informatiques, des mesures prises en réponse et des recommandations pour prévenir de futures attaques similaires.
+
+##Description de l'incident
+Le 11/9/2024, plusieurs avions de ligne civils ont été détournés par un groupe de pirates informatiques non identifiés dans le but présumé de provoquer des crashs coordonnés dans divers centres de données appartenant à l'association E59.
+Les avions, transportant un total de 789 passagers, ont été détournés peu après leur décollage de l'aéro-porc de Vélizy.
+Les pirates de l'air ont pris le contrôle des avions et ont modifié leurs trajectoires de vol pour qu'ils s'écrasent sur les centres de données ciblés.
+
+##Méthodologie des pirates informatiques
+Les pirates informatiques ont utilisé une combinaison de techniques de piratage avancées et de tactiques de guerre non conventionnelles pour mener cette attaque à grande échelle.
+Tout d'abord, ils ont exploité des vulnérabilités dans les systèmes de contrôle aérien pour prendre le contrôle des avions.
+Ensuite, ils ont utilisé des logiciels malveillants pour désactiver les systèmes de sécurité et de communication des avions, empêchant ainsi les pilotes et les autorités de reprendre le contrôle.
+
+L'objectif principal des pirates informatiques était de créer une perturbation massive des services en ligne en ciblant les centres de données, ce qui entraînerait des pertes financières importantes et une atteinte à la réputation pour les entreprises concernées.
+De plus, en utilisant des avions de ligne civils comme armes, les pirates informatiques cherchaient à provoquer la panique et le chaos à grande échelle, ainsi qu'à exploiter les faiblesses des infrastructures critiques.
+
+##Réponse à l'incident
+Les autorités compétentes ont été rapidement informées de la situation et ont mis en œuvre des protocoles d'urgence pour intercepter les avions et empêcher les crashs imminents.
+Des avions de chasse ont été déployés pour escorter les avions détournés et, après avoir évalué la situation, ont pris la décision d'abattre les avions dans des zones non peuplées pour éviter des pertes civiles plus importantes.
+
+Les équipes de sécurité des centres de données ciblés ont été informées de la menace potentielle et ont pris des mesures préventives pour protéger les infrastructures critiques.
+Cela comprenait la mise en œuvre de protocoles de sauvegarde des données, le déploiement de mesures de sécurité physique supplémentaires et la coordination avec les autorités locales.
+
+##Conséquences
+Bien que l'attaque ait été déjouée et que les centres de données n'aient subi aucun dommage physique, l'incident a eu des répercussions importantes.
Les pertes de vie à bord des avions ont été déplorables et l'impact psychologique sur les familles des victimes \ No newline at end of file diff --git a/content/articles/8.md b/content/articles/8.md index a587bb73..d3801394 100755 --- a/content/articles/8.md +++ b/content/articles/8.md @@ -1,22 +1,22 @@ -#Invasion Volante : Montmartre Assiégé par une Armada de Pigeons
-
-Paris, FRANCE – Dans un tournant des plus surprenants, le quartier emblématique de Montmartre, connu pour son riche passé artistique et ses charmantes ruelles, se retrouve confronté à une invasion d'un nouveau genre : des milliers de pigeons ont choisi d'établir leur quartier général sur la Butte, causant stupeur et désarroi parmi les habitants et les nombreux touristes.
-
-##Un Phénomène Inexplicable
-Les premiers signes de cette invasion ont été observés il y a quelques semaines, lorsque des groupes de pigeons ont commencé à se rassembler en nombre inhabituellement élevé autour des sites les plus fréquentés de Montmartre, incluant la place du Tertre, les abords du Sacré-Cœur et les vignes de Montmartre. Depuis, leur présence n'a cessé de croître, défiant toute explication logique.
-
-##Réactions et Conséquences
-Les commerçants et les résidents locaux expriment leur inquiétude face à cette situation. « C'est devenu un véritable cauchemar », confie un restaurateur de la place du Tertre. « Les clients sont constamment dérangés par les pigeons, et nous devons redoubler d'efforts pour maintenir la propreté des lieux. »
-
-Les conséquences de cette invasion vont au-delà du simple désagrément. Les autorités sanitaires s'alarment des risques potentiels pour la santé publique, tandis que les dégâts matériels commencent à se faire sentir, la faune envahissante s'attaquant aux bâtiments historiques et aux œuvres d'art en plein air qui font la renommée de Montmartre.
-
-##Mesures et Solutions à l'Étude
-Face à l'urgence de la situation, la mairie de Paris, en collaboration avec des experts en faune urbaine, cherche des solutions pour contrôler la population de pigeons sans nuire à l'image pittoresque du quartier ni à la biodiversité locale. Parmi les mesures envisagées figurent la mise en place de dispositifs de dissuasion plus écologiques, l'éducation du public sur les dangers de nourrir les pigeons, et l'introduction de prédateurs naturels.
-
-##Un Appel à la Mobilisation
-L'invasion de pigeons à Montmartre soulève des questions sur la cohabitation entre l'homme et la nature en milieu urbain. « Il est crucial que chacun prenne conscience de son impact sur l'environnement urbain », rappelle un écologue participant au projet de gestion de la crise. « Seule une action collective et respectueuse peut nous permettre de retrouver l'équilibre. »
-
-Alors que Montmartre se bat pour préserver son charme et son patrimoine face à cet assaut ailé, la situation rappelle l'importance de la vigilance et de la responsabilité environnementale dans la préservation de nos espaces urbains partagés.
-
-##Conclusion
+#Invasion Volante : Montmartre Assiégé par une Armada de Pigeons
+
+Paris, FRANCE – Dans un tournant des plus surprenants, le quartier emblématique de Montmartre, connu pour son riche passé artistique et ses charmantes ruelles, se retrouve confronté à une invasion d'un nouveau genre : des milliers de pigeons ont choisi d'établir leur quartier général sur la Butte, causant stupeur et désarroi parmi les habitants et les nombreux touristes.
+
+##Un Phénomène Inexplicable
+Les premiers signes de cette invasion ont été observés il y a quelques semaines, lorsque des groupes de pigeons ont commencé à se rassembler en nombre inhabituellement élevé autour des sites les plus fréquentés de Montmartre, incluant la place du Tertre, les abords du Sacré-Cœur et les vignes de Montmartre. Depuis, leur présence n'a cessé de croître, défiant toute explication logique.
+
+##Réactions et Conséquences
+Les commerçants et les résidents locaux expriment leur inquiétude face à cette situation. « C'est devenu un véritable cauchemar », confie un restaurateur de la place du Tertre. « Les clients sont constamment dérangés par les pigeons, et nous devons redoubler d'efforts pour maintenir la propreté des lieux. »
+
+Les conséquences de cette invasion vont au-delà du simple désagrément. Les autorités sanitaires s'alarment des risques potentiels pour la santé publique, tandis que les dégâts matériels commencent à se faire sentir, la faune envahissante s'attaquant aux bâtiments historiques et aux œuvres d'art en plein air qui font la renommée de Montmartre.
+
+##Mesures et Solutions à l'Étude
+Face à l'urgence de la situation, la mairie de Paris, en collaboration avec des experts en faune urbaine, cherche des solutions pour contrôler la population de pigeons sans nuire à l'image pittoresque du quartier ni à la biodiversité locale. Parmi les mesures envisagées figurent la mise en place de dispositifs de dissuasion plus écologiques, l'éducation du public sur les dangers de nourrir les pigeons, et l'introduction de prédateurs naturels.
+
+##Un Appel à la Mobilisation
+L'invasion de pigeons à Montmartre soulève des questions sur la cohabitation entre l'homme et la nature en milieu urbain. « Il est crucial que chacun prenne conscience de son impact sur l'environnement urbain », rappelle un écologue participant au projet de gestion de la crise. « Seule une action collective et respectueuse peut nous permettre de retrouver l'équilibre. »
+
+Alors que Montmartre se bat pour préserver son charme et son patrimoine face à cet assaut ailé, la situation rappelle l'importance de la vigilance et de la responsabilité environnementale dans la préservation de nos espaces urbains partagés.
+
+##Conclusion
Cette invasion de pigeons à Montmartre est sans précédent dans l'histoire récente de Paris et met en lumière les défis auxquels nos villes doivent faire face dans la gestion de la faune urbaine. L'issue de cette situation pourrait bien définir de nouvelles normes en matière de cohabitation entre les citadins et les animaux sauvages en milieu urbain. \ No newline at end of file diff --git a/content/articles/9.md b/content/articles/9.md index 59dfa535..6cffb77b 100755 --- a/content/articles/9.md +++ b/content/articles/9.md @@ -1,13 +1,13 @@ -Ce matin, dans une tournure d'événements tragique et inattendue, un avion s'est écrasé sur l'Institut Universitaire de Technologie (IUT) de Vélizy, semant la panique et le chaos au sein du campus et des environs. Les premiers rapports indiquent que l'accident a eu lieu aux premières heures de la journée, à un moment où de nombreux étudiants et membres du personnel commençaient tout juste leur journée académique et professionnelle.
-
-Les services d'urgence ont été alertés immédiatement après l'incident et se sont rapidement rendus sur les lieux pour évaluer l'étendue des dégâts et porter secours aux victimes. Les premières images et vidéos diffusées sur les réseaux sociaux montrent une scène de destruction massive, avec des débris de l'avion éparpillés sur une large zone et des bâtiments de l'IUT sérieusement endommagés par l'impact.
-
-Les autorités n'ont pas encore confirmé le nombre exact de victimes, mais les premières estimations suggèrent qu'il pourrait y avoir des blessés et potentiellement des décès, tant parmi les occupants de l'avion que dans la communauté de l'IUT. Les équipes de secours travaillent d'arrache-pied pour fouiller les décombres à la recherche de survivants tout en assurant la sécurité du site pour éviter tout risque supplémentaire.
-
-L'enquête sur les circonstances de l'accident est en cours, avec la participation de l'aviation civile et d'autres autorités compétentes. Bien que les détails soient encore flous à ce stade, il semblerait que l'avion ait rencontré des difficultés peu après le décollage, menant à cette catastrophe inimaginable. Les experts en aviation se penchent sur diverses théories, y compris des problèmes techniques, des conditions météorologiques défavorables ou une erreur humaine.
-
-La communauté de l'IUT de Vélizy est sous le choc, et le soutien psychologique est en cours de déploiement pour aider les étudiants, le personnel et les familles affectées par cette tragédie. Le président de l'IUT a exprimé sa profonde tristesse et sa solidarité avec toutes les personnes touchées, promettant une enquête approfondie pour comprendre les causes de l'accident et mettre en œuvre des mesures pour éviter qu'une telle catastrophe ne se reproduise.
-
-Alors que la communauté de Vélizy et les familles des victimes commencent à traiter l'ampleur de cette tragédie, les messages de soutien affluent de tout le pays et au-delà, rappelant à tous l'importance de la solidarité et de la compassion dans les moments les plus sombres.
-
+Ce matin, dans une tournure d'événements tragique et inattendue, un avion s'est écrasé sur l'Institut Universitaire de Technologie (IUT) de Vélizy, semant la panique et le chaos au sein du campus et des environs. Les premiers rapports indiquent que l'accident a eu lieu aux premières heures de la journée, à un moment où de nombreux étudiants et membres du personnel commençaient tout juste leur journée académique et professionnelle.
+
+Les services d'urgence ont été alertés immédiatement après l'incident et se sont rapidement rendus sur les lieux pour évaluer l'étendue des dégâts et porter secours aux victimes. Les premières images et vidéos diffusées sur les réseaux sociaux montrent une scène de destruction massive, avec des débris de l'avion éparpillés sur une large zone et des bâtiments de l'IUT sérieusement endommagés par l'impact.
+
+Les autorités n'ont pas encore confirmé le nombre exact de victimes, mais les premières estimations suggèrent qu'il pourrait y avoir des blessés et potentiellement des décès, tant parmi les occupants de l'avion que dans la communauté de l'IUT. Les équipes de secours travaillent d'arrache-pied pour fouiller les décombres à la recherche de survivants tout en assurant la sécurité du site pour éviter tout risque supplémentaire.
+
+L'enquête sur les circonstances de l'accident est en cours, avec la participation de l'aviation civile et d'autres autorités compétentes. Bien que les détails soient encore flous à ce stade, il semblerait que l'avion ait rencontré des difficultés peu après le décollage, menant à cette catastrophe inimaginable. Les experts en aviation se penchent sur diverses théories, y compris des problèmes techniques, des conditions météorologiques défavorables ou une erreur humaine.
+
+La communauté de l'IUT de Vélizy est sous le choc, et le soutien psychologique est en cours de déploiement pour aider les étudiants, le personnel et les familles affectées par cette tragédie. Le président de l'IUT a exprimé sa profonde tristesse et sa solidarité avec toutes les personnes touchées, promettant une enquête approfondie pour comprendre les causes de l'accident et mettre en œuvre des mesures pour éviter qu'une telle catastrophe ne se reproduise.
+
+Alors que la communauté de Vélizy et les familles des victimes commencent à traiter l'ampleur de cette tragédie, les messages de soutien affluent de tout le pays et au-delà, rappelant à tous l'importance de la solidarité et de la compassion dans les moments les plus sombres.
+
Il semblerait que ce soit une attaque PCDoS menée par le Congo. \ No newline at end of file diff --git a/content/pages/about.md b/content/pages/about.md index 05eb8cc0..9a3a1662 100755 --- a/content/pages/about.md +++ b/content/pages/about.md @@ -2,7 +2,7 @@
Seuls les cookies nécessaires au bon fonctionnement du site sont stockés sur la machine de l'utilisateur.

-Il est possible de supprimer votre compte et toutes les données associées dans [compte.php](compte.php)
+Il est possible de supprimer votre compte et toutes les données associées dans [Options](/settings)

###Liste des données personnelles stockées :
- Nom d'utilisateur
diff --git a/content/pages/index.md b/content/pages/index.md deleted file mode 100755 index b40efc9c..00000000 --- a/content/pages/index.md +++ /dev/null @@ -1,3 +0,0 @@ -#Bienvenue sur le journal de la E59.
-**Vous y trouverez les dernières actualités du Club.
** -**Vous pouvez nous contacter en écrivant à [club@e59.fr](mailto:club@e59.fr).** \ No newline at end of file diff --git a/database/E59.sql b/database/E59.sql old mode 100755 new mode 100644 index edb02040..d8657065 --- a/database/E59.sql +++ b/database/E59.sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 5.2.1 +-- version 5.2.1deb1+jammy2 -- https://www.phpmyadmin.net/ -- --- Host: localhost --- Generation Time: Mar 15, 2024 at 01:26 AM --- Server version: 10.5.23-MariaDB-0+deb11u1 --- PHP Version: 7.4.33 +-- Hôte : localhost:3306 +-- Généré le : dim. 17 mars 2024 à 15:14 +-- Version du serveur : 10.6.16-MariaDB-0ubuntu0.22.04.1 +-- Version de PHP : 8.1.2-1ubuntu2.14 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; @@ -18,47 +18,92 @@ SET time_zone = "+00:00"; /*!40101 SET NAMES utf8mb4 */; -- --- Database: `E59` +-- Base de données : `E59` -- -- -------------------------------------------------------- -- --- Table structure for table `articles` +-- Structure de la table `articles` -- CREATE TABLE `articles` ( `ID` int(12) NOT NULL, `title` varchar(255) NOT NULL, - `date` datetime NOT NULL DEFAULT current_timestamp(), - `author` int(12) NOT NULL, - `classification` int(12) NOT NULL, + `creation_date` datetime NOT NULL DEFAULT current_timestamp(), + `last_update` datetime NOT NULL DEFAULT current_timestamp(), + `author` int(12) NOT NULL COMMENT 'users.ID', + `classification` int(12) NOT NULL COMMENT 'confidential_levels.ID', `miniature` varchar(255) DEFAULT NULL, `resume` text DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- --- Dumping data for table `articles` +-- Déchargement des données de la table `articles` -- -INSERT INTO `articles` (`ID`, `title`, `date`, `author`, `classification`, `miniature`, `resume`) VALUES -(1, 'Écrivons le futur !', '2024-03-07 09:32:00', 1, 0, '/assets/miniatures/1.png', 'Après avoir discuté avec l\'administration de notre IUT, nous avons découvert la partie humaine qui assure sa gestion, avec laquelle nous avons eu le plaisir de sympathiser. '), -(2, 'SpyLab', '2024-03-07 19:15:00', 2, 0, '/assets/miniatures/2.png', 'La plateforme de CTF SpyLab est displonible sur le gitlab de la E59.<br />\r\nCe projet a été mené dans le cadre de la SAE Pentest, un projet universitaire dirigé par Monsieur Guillemin.'), -(3, 'Réunion Association #1', '2024-03-07 21:53:16', 2, 3, '/assets/miniatures/3.png', 'Récapitulatif de la réunion concernant la transition du Club vers l\'état d\'association'), -(4, 'Update 1.0', '2024-03-08 23:00:24', 2, 0, '/assets/miniatures/4.png', 'Changelog de la mise à jour 1.0 de la plateforme e59.fr..'), -(5, 'Connaissez vous l\'attaque PCDoS ?', '2024-03-11 07:45:04', 2, 0, '/assets/miniatures/5.png', 'Aussi connue sous le nom PCDoS (Plane Crash Denial of Service), cette faille est une faille 0day patchée grâce au plan vigipirate.'), -(6, 'Rapport Pentest (WDoS)', '2024-03-11 07:52:33', 4, 0, '/assets/miniatures/6.png', 'Dans le cadre de notre évaluation de sécurité, nous avons réalisé une attaque de pentesting physique simulée sur les infrastructures réseau de l\'entreprise. '), -(7, 'Rapport d\'incident (PCDoS)', '2024-03-11 15:59:25', 4, 1, '/assets/miniatures/7.png', 'Le présent rapport détaille un événement impliquant une tentative d\'attaque par déni de service distribué (DDoS) non conventionnelle et à grande échelle sur un centre de données.'), -(8, 'Invasion Volante', '2024-03-11 19:49:51', 2, 0, '/assets/miniatures/8.png', 'Montmartre Assiégé par une Armada de Pigeons.'), -(9, 'Un avion s\'écrase sur l\'IUT !', '2024-03-12 08:11:11', 2, 0, '/assets/miniatures/9.png', 'Ce matin, dans une tournure d\'événements tragique et inattendue, un avion s\'est écrasé sur l\'Institut Universitaire de Technologie (IUT) de Vélizy, ...'), -(10, 'Comment faire un 49.3 ?', '2024-03-12 12:39:50', 7, 0, '/assets/miniatures/10.png', 'Dans ce tutoriel je vais te montrer comme faire un 49.3.
\r\nTu pourras appliquer ce tutoriel pendant les travaux de groupe quand il faudra rétablir l\'ordre suprême !'), -(11, 'Update 1.1', '2024-03-12 17:07:47', 2, 0, '/assets/miniatures/11.png', 'Liste des changements suite à la mise à jour de la plateforme vers la version 1.1'), -(12, 'Update 1.2', '2024-03-14 20:50:15', 2, 0, '/assets/miniatures/12.png', 'La première update majeure vient de sortir !'); +INSERT INTO `articles` (`ID`, `title`, `creation_date`, `last_update`, `author`, `classification`, `miniature`, `resume`) VALUES +(1, 'Écrivons le futur !', '2024-03-07 09:32:00', '2024-03-17 14:20:54', 1, 0, '/assets/miniatures/1.png', 'Après avoir discuté avec l\'administration de notre IUT, nous avons découvert la partie humaine qui assure sa gestion, avec laquelle nous avons eu le plaisir de sympathiser. '), +(2, 'SpyLab', '2024-03-07 19:15:00', '2024-03-17 14:20:54', 2, 0, '/assets/miniatures/2.png', 'La plateforme de CTF SpyLab est displonible sur le gitlab de la E59.<br />\r\nCe projet a été mené dans le cadre de la SAE Pentest, un projet universitaire dirigé par Monsieur Guillemin.'), +(3, 'Réunion Association #1', '2024-03-07 21:53:16', '2024-03-17 14:20:54', 2, 50, '/assets/miniatures/3.png', 'Récapitulatif de la réunion concernant la transition du Club vers l\'état d\'association'), +(4, 'Update 1.0', '2024-03-08 23:00:24', '2024-03-17 14:20:54', 2, 10, '/assets/miniatures/4.png', 'Changelog de la mise à jour 1.0 de la plateforme e59.fr..'), +(5, 'Connaissez vous l\'attaque PCDoS ?', '2024-03-11 07:45:04', '2024-03-17 14:20:54', 2, 0, '/assets/miniatures/5.png', 'Aussi connue sous le nom PCDoS (Plane Crash Denial of Service), cette faille est une faille 0day patchée grâce au plan vigipirate.'), +(6, 'Rapport Pentest (WDoS)', '2024-03-11 07:52:33', '2024-03-17 14:20:54', 4, 0, '/assets/miniatures/6.png', 'Dans le cadre de notre évaluation de sécurité, nous avons réalisé une attaque de pentesting physique simulée sur les infrastructures réseau de l\'entreprise. '), +(7, 'Rapport d\'incident (PCDoS)', '2024-03-11 15:59:25', '2024-03-17 14:20:54', 4, 0, '/assets/miniatures/7.png', 'Le présent rapport détaille un événement impliquant une tentative d\'attaque par déni de service distribué (DDoS) non conventionnelle et à grande échelle sur un centre de données.'), +(8, 'Invasion Volante', '2024-03-11 19:49:51', '2024-03-17 14:20:54', 2, 10, '/assets/miniatures/8.png', 'Montmartre Assiégé par une Armada de Pigeons.'), +(9, 'Un avion s\'écrase sur l\'IUT !', '2024-03-12 08:11:11', '2024-03-17 14:20:54', 2, 10, '/assets/miniatures/9.png', 'Ce matin, dans une tournure d\'événements tragique et inattendue, un avion s\'est écrasé sur l\'Institut Universitaire de Technologie (IUT) de Vélizy, ...'), +(10, 'Comment faire un 49.3 ?', '2024-03-12 12:39:50', '2024-03-17 14:20:54', 7, 0, '/assets/miniatures/10.png', 'Dans ce tutoriel je vais te montrer comme faire un 49.3.
\r\nTu pourras appliquer ce tutoriel pendant les travaux de groupe quand il faudra rétablir l\'ordre suprême !'), +(11, 'Update 1.1', '2024-03-12 17:07:47', '2024-03-17 14:20:54', 2, 10, '/assets/miniatures/11.png', 'Liste des changements suite à la mise à jour de la plateforme vers la version 1.1'), +(12, 'Update 1.2', '2024-03-14 20:50:15', '2024-03-17 15:03:03', 2, 10, '/assets/miniatures/12.png', 'La première update majeure vient de sortir !'); -- -------------------------------------------------------- -- --- Table structure for table `users` +-- Structure de la table `confidential_levels` +-- + +CREATE TABLE `confidential_levels` ( + `ID` int(11) NOT NULL, + `name` varchar(255) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Déchargement des données de la table `confidential_levels` +-- + +INSERT INTO `confidential_levels` (`ID`, `name`) VALUES +(0, 'E59i-P (Public)'), +(10, 'E59i-M (Membres)'), +(20, 'E59i-R (Responsables)'), +(50, 'E59i-D (Direction)'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `roles` +-- + +CREATE TABLE `roles` ( + `ID` int(11) NOT NULL, + `badge_svg` varchar(2047) NOT NULL, + `role_name` varchar(255) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- Déchargement des données de la table `roles` +-- + +INSERT INTO `roles` (`ID`, `badge_svg`, `role_name`) VALUES +(0, ' ', 'Non connecté'), +(1, '', 'Connecté'), +(10, '', 'Membre'), +(20, '', 'Responsable'), +(50, '', 'Directeur'); + +-- -------------------------------------------------------- + +-- +-- Structure de la table `users` -- CREATE TABLE `users` ( @@ -66,61 +111,85 @@ CREATE TABLE `users` ( `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(255) DEFAULT NULL, - `date` datetime NOT NULL DEFAULT current_timestamp(), + `creation_date` datetime NOT NULL DEFAULT current_timestamp(), + `last_update` datetime NOT NULL DEFAULT current_timestamp(), `display_name` varchar(255) DEFAULT 'Guest', - `level` int(12) NOT NULL DEFAULT 0, - `accreditation` int(12) NOT NULL DEFAULT 0, + `role` int(12) NOT NULL DEFAULT 0 COMMENT 'roles.ID', + `accreditation` int(12) NOT NULL DEFAULT 0 COMMENT 'confidential_levels.ID', `profile_picture` varchar(255) DEFAULT NULL, `banner` varchar(255) DEFAULT '', - `bio` varchar(255) DEFAULT NULL, - `certification` int(12) DEFAULT 0 + `bio` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- --- Dumping data for table `users` +-- Déchargement des données de la table `users` -- -INSERT INTO `users` (`ID`, `username`, `password`, `email`, `date`, `display_name`, `level`, `accreditation`, `profile_picture`, `banner`, `bio`, `certification`) VALUES -(0, 'deleted_user', '0', NULL, '2024-03-14 20:22:10', 'Deleted User', 0, 0, NULL, '', NULL, 0), -(1, 'admin', 'f290776df3fe2f6507f06bdbe048588b', 'bod@intra.e59.fr', '2024-03-07 19:42:01', 'Dieu', 3, 3, '/assets/pp/1.png', '/assets/banners/1.png', 'Que la lumière soit...', 3), -(2, 'jan', '57edb0f3104636a40e64ad178868a572', 'jan@intra.e59.fr', '2024-03-07 20:26:05', 'Jan BELLON', 3, 3, '/assets/pp/2.png', '/assets/banners/2.png', '🗿♟️☕', 3), -(3, 'eliott', '3845d4aff76bfb44fe36442dc9fce0be', 'eliott@intra.e59.fr', '2024-03-10 23:39:07', 'Eliott', 3, 3, NULL, NULL, NULL, 3), -(4, 'lucas', 'ff12405d3354d3af7ffffdb08474f9a1', 'lucas@intra.e59.fr', '2024-03-11 07:47:25', 'Trésorier', 3, 3, 'https://risibank.fr/cache/medias/0/24/2460/246030/full.png', 'https://images.pexels.com/photos/315938/pexels-photo-315938.jpeg', 'Nous vivons dans une saucisse', 3), -(5, 'Orjawell', '53e284f44a4533d3c13198ab2d7d1685', 'akram@intra.e59.fr', '2024-03-11 07:48:25', 'Orjawell', 2, 2, NULL, NULL, NULL, 2), -(6, 'neo', 'cb59608fced567a14b13a6e5c5c8a1d2', 'neo@neo', '2024-03-11 09:39:15', 'neo', 1, 1, NULL, NULL, NULL, 1), -(7, 'manu', '57edb0f3104636a40e64ad178868a572', 'manu@intra.e59.fr', '2024-03-12 12:19:57', 'Emmanuel Macron', 2, 3, '/assets/pp/7.png', '/assets/banners/7.png', 'Tais toi, ou je fais un 49.3.', 0), -(8, 'willy.guillemin', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:19:53', 'Willy Guillemin', 1, 1, '/assets/pp/8.png', '/assets/banners/8.png', 'Les bits c\'est des bits', 0), -(9, 'etiehuot', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:25:29', 'Etienne Huot', 1, 1, '/assets/pp/9.png', '/assets/banners/9.png', 'Il est où mon IPhone 15 Pro !', 0), -(10, 'sebastien.lemoel', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:36:02', 'Sebastien Le Moel', 1, 1, '/assets/pp/10.png', '/assets/banners/10.png', 'L\'enfer n\'est rien de plus que le domaine fréquentiel.', 0); +INSERT INTO `users` (`ID`, `username`, `password`, `email`, `creation_date`, `last_update`, `display_name`, `role`, `accreditation`, `profile_picture`, `banner`, `bio`) VALUES +(0, 'deleted_user', '0', NULL, '2024-03-14 20:22:10', '2024-03-17 14:21:53', 'Deleted User', 1, 1, NULL, '', NULL), +(1, 'admin', 'f290776df3fe2f6507f06bdbe048588b', 'bod@intra.e59.fr', '2024-03-07 19:42:01', '2024-03-17 14:21:53', 'Dieu', 50, 50, '/assets/pp/1.png', '/assets/banners/1.png', 'Que la lumière soit...'), +(2, 'jan', '57edb0f3104636a40e64ad178868a572', 'jan@intra.e59.fr', '2024-03-07 20:26:05', '2024-03-17 15:00:55', 'Jan BELLON', 50, 50, '/assets/pp/2.png', '/assets/banners/2.png', '🗿♟️☕❤️'), +(3, 'eliott', '3845d4aff76bfb44fe36442dc9fce0be', 'eliott@intra.e59.fr', '2024-03-10 23:39:07', '2024-03-17 14:21:53', 'Eliott', 50, 50, NULL, NULL, NULL), +(4, 'lucas', 'ff12405d3354d3af7ffffdb08474f9a1', 'lucas@intra.e59.fr', '2024-03-11 07:47:25', '2024-03-17 14:21:53', 'Trésorier', 50, 50, 'https://risibank.fr/cache/medias/0/24/2460/246030/full.png', 'https://images.pexels.com/photos/315938/pexels-photo-315938.jpeg', 'Nous vivons dans une saucisse'), +(5, 'Orjawell', '53e284f44a4533d3c13198ab2d7d1685', 'akram@intra.e59.fr', '2024-03-11 07:48:25', '2024-03-17 14:21:53', 'Orjawell', 20, 20, NULL, NULL, NULL), +(6, 'neo', 'cb59608fced567a14b13a6e5c5c8a1d2', 'neo@neo', '2024-03-11 09:39:15', '2024-03-17 14:21:53', 'neo', 10, 10, NULL, NULL, NULL), +(7, 'manu', '57edb0f3104636a40e64ad178868a572', 'manu@intra.e59.fr', '2024-03-12 12:19:57', '2024-03-17 14:21:53', 'Emmanuel Macron', 1, 1, '/assets/pp/7.png', '/assets/banners/7.png', 'Tais toi, ou je fais un 49.3.'), +(8, 'willy.guillemin', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:19:53', '2024-03-17 14:21:53', 'Willy Guillemin', 1, 1, '/assets/pp/8.png', '/assets/banners/8.png', 'Les bits c\'est des bits'), +(9, 'etiehuot', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:25:29', '2024-03-17 14:21:53', 'Etienne Huot', 1, 1, '/assets/pp/9.png', '/assets/banners/9.png', 'Il est où mon IPhone 15 Pro !'), +(10, 'sebastien.lemoel', '52df21f38c6b2552bf68e4daa9c7f815', '', '2024-03-14 23:36:02', '2024-03-17 14:21:53', 'Sebastien Le Moel', 1, 1, '/assets/pp/10.png', '/assets/banners/10.png', 'L\'enfer n\'est rien de plus que le domaine fréquentiel.'); -- --- Indexes for dumped tables +-- Index pour les tables déchargées -- -- --- Indexes for table `articles` +-- Index pour la table `articles` -- ALTER TABLE `articles` ADD PRIMARY KEY (`ID`); -- --- Indexes for table `users` +-- Index pour la table `confidential_levels` +-- +ALTER TABLE `confidential_levels` + ADD PRIMARY KEY (`ID`); + +-- +-- Index pour la table `roles` +-- +ALTER TABLE `roles` + ADD PRIMARY KEY (`ID`); + +-- +-- Index pour la table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`ID`); -- --- AUTO_INCREMENT for dumped tables +-- AUTO_INCREMENT pour les tables déchargées -- -- --- AUTO_INCREMENT for table `articles` +-- AUTO_INCREMENT pour la table `articles` -- ALTER TABLE `articles` MODIFY `ID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; -- --- AUTO_INCREMENT for table `users` +-- AUTO_INCREMENT pour la table `confidential_levels` +-- +ALTER TABLE `confidential_levels` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=51; + +-- +-- AUTO_INCREMENT pour la table `roles` +-- +ALTER TABLE `roles` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=101; + +-- +-- AUTO_INCREMENT pour la table `users` -- ALTER TABLE `users` MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; diff --git a/html/about/index.php b/html/about/index.php index 193838aa..90f2b028 100755 --- a/html/about/index.php +++ b/html/about/index.php @@ -11,7 +11,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData - + @@ -19,7 +19,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
- +
diff --git a/html/account/index.php b/html/account/index.php index 0d16144b..cf434bb9 100755 --- a/html/account/index.php +++ b/html/account/index.php @@ -1,6 +1,14 @@ /login'); +} + require("../../include/main-functions.php"); require("../../include/objects.php"); require("../../include/inputs.php"); @@ -26,14 +34,14 @@ if (isset($_FILES['newPP']) && $_FILES['newPP']['error'] == 0) { imagecopyresampled($imageResized, $imageOriginal, 0, 0, 0, 0, $imageWidth, $imageHeight, $width, $height); imagealphablending($imageResized, false); - imagesavealpha($imageResized, $rootPath); + imagesavealpha($imageResized, $rootImagePath); imagepng($imageResized, $rootImagePath); imagedestroy($imageOriginal); imagedestroy($imageResized); - $sqlRequest = "UPDATE users SET profile_picture = :userPP WHERE ID = :userID"; + $sqlRequest = "UPDATE users SET profile_picture = :userPP, last_update = now() WHERE ID = :userID"; $request = $pdo->prepare($sqlRequest); $request->bindParam(":userPP", $imageURL); $request->bindParam(":userID", $_SESSION['userID']); @@ -65,14 +73,14 @@ if (isset($_FILES['newBanner']) && $_FILES['newBanner']['error'] == 0) { imagecopyresampled($imageResized, $imageOriginal, 0, 0, 0, 0, $imageWidth, $imageHeight, $width, $height); imagealphablending($imageResized, false); - imagesavealpha($imageResized, $rootPath); + imagesavealpha($imageResized, $rootImagePath); imagepng($imageResized, $rootImagePath); imagedestroy($imageOriginal); imagedestroy($imageResized); - $sqlRequest = "UPDATE users SET banner = :userBanner WHERE ID = :userID"; + $sqlRequest = "UPDATE users SET banner = :userBanner, last_update = now() WHERE ID = :userID"; $request = $pdo->prepare($sqlRequest); $request->bindParam(":userBanner", $imageURL); $request->bindParam(":userID", $_SESSION['userID']); @@ -86,27 +94,26 @@ if (isset($_FILES['newBanner']) && $_FILES['newBanner']['error'] == 0) { } } -if (isset($_POST['userDisplayName']) && isset($_POST['userBio'])) { - if(preg_match('!\S!u', $_POST['userDisplayName']) && preg_match('!\S!u', $_POST['userBio'])) { - $sqlRequest = "UPDATE users SET display_name = :userDisplayName, bio = :userBio WHERE ID = :userID"; - $request = $pdo->prepare($sqlRequest); - $request->bindParam(":userDisplayName", htmlspecialchars(substr($_POST['userDisplayName'], 0, 20))); - $request->bindParam(":userBio", htmlspecialchars(substr($_POST['userBio'], 0, 200))); - $request->bindParam(":userID", $_SESSION['userID']); - if($request->execute()) { - $status = "Informations mises à jour"; - $_SESSION['userDisplayName'] = htmlspecialchars($_POST['userDisplayName']); - } +if (isset($_POST['userDisplayName']) || isset($_POST['userBio'])) { + $sqlRequest = "UPDATE users SET display_name = :userDisplayName, bio = :userBio, last_update = now() WHERE ID = :userID"; + $request = $pdo->prepare($sqlRequest); + $userDisplayName = isset($_POST['userDisplayName']) ? htmlspecialchars(substr($_POST['userDisplayName'], 0, 20)) : "Guest"; + $userBio = isset($_POST['userBio']) ? htmlspecialchars(substr($_POST['userBio'], 0, 200)) : ""; + $request->bindParam(":userDisplayName", $userDisplayName); + $request->bindParam(":userBio", $userBio); + $request->bindParam(":userID", $_SESSION['userID']); + if($request->execute()) { + $status = "Informations mises à jour"; + $_SESSION['userDisplayName'] = htmlspecialchars($_POST['userDisplayName']); } } -$request = $pdo->prepare("SELECT ID, username, display_name, profile_picture, banner, bio FROM users WHERE ID = :userID"); +$request = $pdo->prepare("SELECT username, display_name, profile_picture, banner, bio FROM users WHERE ID = :userID"); $request->bindParam(":userID", $_SESSION['userID']); $request->execute(); $result = $request->fetchAll(PDO::FETCH_ASSOC); if($result) { - $userID = $result[0]['ID']; $userName = $result[0]['username']; $userDisplayName = $result[0]['display_name']; $userPPURL = $result[0]['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $result[0]['profile_picture']; @@ -172,7 +179,7 @@ if($result) {
- +
@@ -225,9 +232,9 @@ if($result) { prepare("SELECT ID, title, date, miniature, resume FROM articles WHERE (title LIKE :search OR ID LIKE :search) AND author = :userID ORDER BY date DESC"); + $request = $pdo->prepare("SELECT ID, title, creation_date, miniature, resume FROM articles WHERE (title LIKE :search OR ID LIKE :search) AND author = :userID ORDER BY creation_date DESC"); $request->bindParam(":search", $search); - $request->bindParam(":userID", $userID); + $request->bindParam(":userID", $_SESSION['userID']); $request->execute(); $result = $request->fetchAll(PDO::FETCH_ASSOC); echo ('

Vos articles

'); diff --git a/html/admin/index.php b/html/admin/index.php index 675d8f75..8b9a42aa 100755 --- a/html/admin/index.php +++ b/html/admin/index.php @@ -1,17 +1,48 @@ prepare($sqlRequest); + $request->bindParam(":userRole", $userRole); + $request->bindParam(":userAccreditation", $userAccreditation); + $request->bindParam(":userID", $userID); + if($request->execute()) { + $status = "Utilisateur mis à jour"; + } else { + $status = "Erreur SQL"; + } +} + +if (isset($_POST['delete-user']) && isset($_POST['delete-user-id'])) { + $userID = (int)$_POST['delete-user-id']; + $sqlRequest = "DELETE FROM users WHERE ID = :userID"; + $request = $pdo->prepare($sqlRequest); + $request->bindParam(":userID", $userID); + if($request->execute()) { + $status = "Utilisateur supprimé"; + } else { + $status = "Erreur SQL"; + } } -$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass); ?> @@ -20,6 +51,10 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData @@ -27,7 +62,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
- +
@@ -39,8 +74,8 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
+ '); $shapePath = ''; textInput("text", $shapePath, "search", "Chercher", ""); @@ -48,7 +83,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData $search = isset($_GET['search']) ? '%' . $_GET['search'] . '%' : '%%'; - $sqlRequest = "SELECT username, display_name, certification, profile_picture FROM users WHERE ID LIKE :search OR username LIKE :search OR display_name LIKE :search OR email LIKE :search ORDER BY date DESC"; + $sqlRequest = "SELECT users.ID, users.username, users.display_name, users.role, users.accreditation, roles.badge_svg, users.profile_picture FROM users JOIN roles ON users.role = roles.ID WHERE users.ID LIKE :search OR users.username LIKE :search OR users.display_name LIKE :search OR users.email LIKE :search ORDER BY users.creation_date DESC"; $request = $pdo->prepare($sqlRequest); $request->bindParam(":search", $search); $request->execute(); @@ -56,18 +91,41 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData if ($result) { echo ('
'); + $sqlRequest = "SELECT ID, name FROM confidential_levels"; + $request = $pdo->prepare($sqlRequest); + $request->execute(); + $confidentialLevels = array(); + foreach($request->fetchAll(PDO::FETCH_ASSOC) as $confidentialLevel) { + $confidentialLevels[$confidentialLevel['ID']] = $confidentialLevel['name']; + } + $sqlRequest = "SELECT ID, role_name FROM roles"; + $request = $pdo->prepare($sqlRequest); + $request->execute(); + $userRoles = array(); + foreach($request->fetchAll(PDO::FETCH_ASSOC) as $userRole) { + $userRoles[$userRole['ID']] = $userRole['role_name']; + } foreach($result as $row) { - $pubDateTime = strtotime($row['date']); - $pubDate = date('d/m/Y', $pubDateTime); - $userName = $row['username']; - $userDisplayName = $row['display_name']; - $userCertification = $row['certification']; $userPPURL = $row['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $row['profile_picture']; - userWidget($userPPURL, $userDisplayName, $userName, $userCertification, $badges, $rootPageURL); + + echo ('
'); + userWidget($userPPURL, $row['display_name'], $row['username'], $row['badge_svg'], $rootPageURL); + selectInput("user-role", "Role", $userRoles, $row['role']); + selectInput("user-accreditation", "Accreditation", $confidentialLevels, $row['accreditation']); + echo (''); + echo (''); + echo ('
'); + echo ('
'); + echo (''); + echo (''); + echo ('
'); } echo ('
'); + } else { + echo ('Aucun utilisateur trouvé.'); } ?> + PHPMyAdmin