Level 7 (practice)
Dernière mise à jour
Dernière mise à jour
Appeler la fonction tallHuman()
avec la chaîne de caractères "9ultl0bs"
en argument :
Dans cet exercice, la chaîne semble être inversée et un filtrage est effectué sur le caractère "t"
:
L'idée va donc être de gérer dans un premier temps le filtrage sur le caractère "t"
puis d'effectuer un inversement sur notre chaîne. Concernant le filtrage j'utilise le "T"
à la place du "t"
pour pouvoir écrire le mot clé "script"
. Le filtre du caractère dans le nom de la fonction ainsi que dans la chaîne passée en paramètre est contournable grâce à l'encodage unicode :
Appeler la fonction prettySuperHero()
avec la chaîne de caractères "86zk0a0i"
en argument mais cette fois sur l'attribut src
dans une balise <img />
:
Seuls les caractères " " (espace)
, "6"
et "0"
sont filtrés, je ne rencontre donc pas de réel difficulté ici :
Cela ne sert à rien de tenter de contourner le filtre sur le caractère " " (espace)
, il sera ajouté automatiquement. J'utilise les opérations mathématiques afin de retrouver le "6"
et le "0"
:
Appeler la fonction kindSuperHero()
avec la chaîne de caractères "zccb5yih"
en argument mais cette fois sur l'attribut href
dans une balise <a>
:
Plutôt facile pour celle-ci : la chaîne est inversée et seul le caractère "i"
est filtré :
J'utilise donc le contournement par le jeu de majuscule/minuscule et l'encodage unicode avant d'inverser la payload :
Appeler la fonction fancySuperHero()
avec la chaîne de caractères "1vose8qg"
en argument mais cette fois sur la valeur de la propriété background-color
du sélecteur banner
:
Dans cet exercice, le caractère "p"
ainsi que le caractère "\"
sont filtrés :
Je contourne le filtrage sur "p"
dans les balises en utilisant "P"
. Pour le caractère "p"
de la chaîne passée en argument, il n'est pas possible d'utiliser l'encodage unicode car le caractère "\"
est filtré. Je passe alors par un toLowerCase()
:
Appeler la fonction braveFunction()
avec la chaîne de caractères "kacwpkiy"
en argument mais cette fois sur l'attribut value
du tag <input/>
:
Ici la chaîne est inversée. De plus, les caractères "F"
, "("
et " "(espace)
sont filtrés :
Je remplace les caractères par la version HTML entities ou unicode selon le cas, puis, j'inverse la chaîne :
Appeler la fonction niceSuperHero()
avec la chaîne de caractères "3hbw9yod"
en argument au sein de la valeur d'une variable Javascript :
Un filtrage est effectué sur le caractère "c"
(ainsi que sur "C"
) ainsi que sur le caractère "3"
. Finalement la chaîne est également inversée :
Je suis tenté d'appeler directement la fonction niceSuperHero()
, mais étant donné que le "c"
est filtré et son code unicode est \u0063
et qu'il contient un "3"
... Je passe alors par un encodage base64 et un toLowerCase()
:
Appeler la fonction braveHuman()
avec la chaîne de caractères "we9o3qci"
en arugment mais cette fois en valeur d'une donnée JSON stockée dans la variable window.appData
:
Pas de difficulté ici puisque seul le caractère "9"
semble être filtré :
Soit en utilisant une opération mathématique :