3.2 KiB
3.2 KiB
date | title | weight |
---|---|---|
2019-04-05T15:59:52+02:00 | Liste de choix | 20 |
Ce type de flag s'utilise pour valider une réponse que le participant aurait du mal à écrire correctement ou à déterminer sans avoir plus d'indications. C'est notamment le cas pour les numéros de CVE (la liste de choix permet alors de recentrer les recherches à effectuer), ou les types de payloads : comme chacun peut avoir sa façon d'écrire ou de nommer une charge malveillante.
Propriétés
- type
"ucq"
ou"radio"
(lesucq
se présentent sous la forme d'une liste de choix, élément<select>
, tandis queradio
présente le flag sous la forme de boutons radios) ;- id
- (facultatif) identifiant du flag au sein de l'exercice, pour définir des dépendances ;
- label
- (facultatif, par défaut :
Flag
) intitulé du drapeau ; - raw
- drapeau exact à trouver ; forme de [tableau]({{% relref "/responses/vector.md" %}}) possible, mais déconseillée ;
- choices_cost
- (facultatif, par défaut 0) coût pour afficher les choix : avant l'affichage, se comporte comme un
flag
classique (sichoices_cost
= 0, les choix sont affichés directement) ; - capture_regexp
- (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que
?:
au début d'un groupe ne le capturera pas) ; - ordered
- (facultatif, par défaut :
false
) ignore l'ordre dans lequel les éléments du tableau sont passés ; - casesensitive
- (facultatif, par défaut :
false
) prend en compte la casse de ce drapeau lors de la validation ; - placeholder
- chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner un exemple de ce qui serait attendu ou une indication de format ;
- unit
- (facultatif) chaîne de caractères ajoutée à la fin du champ pour indiquer une information complétant le flag, par exemple l'unité de mesure attendue ;
- help
- (facultatif, rarement utilisé) chaîne de caractères placée sous le champ du formulaire, idéale pour donner un détail supplémentaire.
Propriétés des choix
- label
- (facultatif, par défaut
value
est utilisé) intitulé du choix ; - value
- valeur envoyée par le formulaire de validation lorsque le choix est sélectionné.
Exemple
[[flag]]
type = "ucq"
label = "Type de malware"
capture_regexp = "^.*(dropper).*$"
raw = "Il installe quelque chose à son tour ! Il s'agit d'un dropper."
choices_cost = 25
[[flag.choice]]
value = "Il exécute arbitrairement une commande passée en paramètre par un botnet !"
[[flag.choice]]
value = "Un évènement est déclenché à un temps précis ! Il s'agit d'un logic-bomb !"
[[flag.choice]]
value = "Il supprime tout dans le disque."
[[flag.choice]]
value = "Il installe quelque chose à son tour ! Il s'agit d'un dropper."
[[flag.choice]]
value = "Il communique avec un autre ordinateur à distance."
Rendu
Rendu avec choices_cost > 0
Le participant a la possibilité d'écrire lui-même le type de malware dans un premier temps, mais s'il n'y arrive pas, il peut dépenser 25 points pour obtenir une liste de choix.