Level 7 (practice)

Challenge #1

Description

Appeler la fonction tallHuman() avec la chaîne de caractères "9ultl0bs" en argument :

Résolution

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 :

Challenge #2

Description

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 /> :

Résolution

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" :

Challenge #3

Description

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> :

Résolution

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 :

Challenge #4

Description

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 :

Résolution

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() :

Challenge #5

Description

Appeler la fonction braveFunction() avec la chaîne de caractères "kacwpkiy" en argument mais cette fois sur l'attribut value du tag <input/> :

Résolution

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 :

Challenge #6

Description

Appeler la fonction niceSuperHero() avec la chaîne de caractères "3hbw9yod" en argument au sein de la valeur d'une variable Javascript :

Résolution

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 \u0063et qu'il contient un "3" ... Je passe alors par un encodage base64 et un toLowerCase() :

Challenge #7

Description

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 :

Résolution

Pas de difficulté ici puisque seul le caractère "9" semble être filtré :

Soit en utilisant une opération mathématique :

Dernière mise à jour