From 39de993483f868ee296721881fb87d055c87ce46 Mon Sep 17 00:00:00 2001 From: Maxime Augier Date: Wed, 22 May 2024 15:10:56 +0200 Subject: [PATCH] Initial commit --- demo.typ | 41 +++++++++++++++++++++++++++++++++++++++++ exam.typ | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 demo.typ create mode 100644 exam.typ diff --git a/demo.typ b/demo.typ new file mode 100644 index 0000000..f12aa5f --- /dev/null +++ b/demo.typ @@ -0,0 +1,41 @@ +#import "exam.typ" : exam, question +#show: doc => exam( + title: "Test Intermédiaire 2", + subtitle: "HEIG-VD - Introduction à la Sécurité Informatique (ISI)", + course: "ISI", + date: datetime(year: 2024, month: 5, day: 27), + author: "Maxime Augier", + indications: [ +Indications: + - Ce test doit être réalisé en maximum *45 minutes*. + - Aucun document n'est admis, excepté une page A4 (recto-verso) de + résumé personnel + - L'utilisation de tout type de matériel électronique est interdite. + - Ne pas oublier d'inscrire votre nom et prénom à l'endroit prévu à cet effet. + - Merci de respecter un silence absolu jusqu'à ce que le dernier étudiant + aie rendu sa copie +], + doc +) + += Web + +Vous opérez l’infrastructure d'une association de hackers amateurs, et remarquez un comportement étrange sur votre serveur web. + +Vous lisez les logs de votre serveur web, et observez plusieurs requêtes suspectes, par exemple l’URL suivante : + +`https://hackerz-club.ch/forum/browse.php?category=XSS&sort=post_date+union+select+%2A+from+users` + +#question[Quel est le nom usuel de la vulnérabilité exploitée +ci dessus ?][Injection SQL (dans une clause ORDER BY)] + +#question(points: 2)[Quel est l'effet de l'attaque ?][Le vol de la table `users` de la base de données] + += Crypto + +Bla + += Sécu + +Bli + diff --git a/exam.typ b/exam.typ new file mode 100644 index 0000000..d79a1d7 --- /dev/null +++ b/exam.typ @@ -0,0 +1,42 @@ +#let qctr = counter("question") + +#let french_month = ("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre") + +#let exam(title: "Exam", course: none, date: none, class: none, +author: none, subtitle: none, indications: none, doc) = { + + set text(font: "Montserrat") + + let date = if date == none { datetime.today() } else { date }; + + align(center, text(size:26pt, course + " - " + date.display("[year]"))) + align(center, text(size:26pt, title)) + align(center, text(size:15pt, fill: luma(80), subtitle)) + v(5%) + align(center, text(size:14pt, author)) + v(3%) + align(center, text(size:14pt, date.display("[day] ") + french_month.at(date.month() - 1) + date.display(" [year]"))) + + v(7%) + align(left, text(size: 20pt, "Nom :")) + align(left, text(size: 20pt, "Prénom :")) + v(3%) + + line(length: 100%, stroke: luma(80)) + + text(size: 14pt, indications) + + pagebreak() + + + + doc +}; + +#let question(points: 1, q, a) = { + let pts = text(weight: "bold", + [#points] + if points < 2 { "pt" } else { "pts" }); + + context { qctr.step(); qctr.display() } + q +}