> For the complete documentation index, see [llms.txt](https://sharpforce.gitbook.io/cybersecurity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sharpforce.gitbook.io/cybersecurity/walkthroughs/deliberately-vulnerable/unescape-room/level-5-practice.md).

# Level 5 (practice)

## Challenge #1

### Description

Appeler la fonction `prettyHuman()` avec la chaîne de caractères `"m5lccw"` en argument :

![](/files/-LsHqVEroR9P8XgX-o0F)

### Résolution

Ici, deux filtres sont en place : les occurrences du caractère `"c"` sont supprimées et le caractère `" " (espace)` n'est également pas disponible. Le filtrage du caractère `"c"` est gênant car la balise `<script></script>` n'est pas utilisable :

![](/files/-LsHt-4owUkwz3Z4-Uob)

Je contourne le filtrage du caractère `"c"` en passant par un tag `<svg>`ainsi que de l'encodage unicode suivant le contexte. Le `"/"` me permet de contourner la suppression du caractère `" " (espace)` :

![](/files/-LsHrVcJoUMjE2nM2Ocu)

## Challenge #2

### Description

Appeler la fonction `prettyRobot()` avec la chaîne de caractères `"elcmf4"` en argument mais cette fois sur l'attribut `src` dans une balise `<img />` :

![](/files/-LsHWFV6lkfJxvg7kfHc)

### Résolution

Il me faut plusieurs essais avant de déterminer les quelques filtres en place ici. Il semble que l’occurrence `"on"` ne soit pas permise ainsi que l’occurrence `"rr"` qui est transformée en `"r"`. De plus le caractère `"t"` ne semble pas être permis non plus :

![](/files/-LsHZIu0ZkY9NQy0yrUa)

Concernant le `"on"` de `onerror` je peux passer par le balise `<script></<script>`. Pour avoir une seule occurrence de `"r"` j'en renseigne un second, puis, finalement, j'utilise l'encodage unicode pour contourner le filtre sur le caractère `"t"` :

![](/files/-LsHa9JfpF--XDLUpgzX)

## Challenge #3

### Description

Appeler la fonction `politeSuperHero()` avec la chaîne de caractères `"twxdfu"` en argument mais cette fois sur l'attribut `href` dans une balise `<a>` :

![](/files/-LsHaoaQLNLMGjTLNfpx)

### Résolution

Dans ce challenge, le caractère `"u"` ainsi que le caractère `"o"` sont filtrés :

![](/files/-LsHcXwVe4b-F0lgY1i8)

Etant donné que le `"u"` est filtré, il n'est pas possible d'utiliser l'encodage unicode. J'utilise donc les HTML entities pour le filtrage des caractères `"o"` et `"u"`. Concernant le `"u"` présent dans la chaîne passée en argument on utilise la fonction `String.fromCharCode()` . J'utilise également les HTML entities car je me rends compte que la chaîne `"String"` est également filtrée :

![](/files/-LsHfgdi8P3TV_AllTyL)

Je me suis rendu compte seulement à posteriori , mais le filtrage sur le `"o"` est contournable en le doublant (par exemple `"oo"`).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sharpforce.gitbook.io/cybersecurity/walkthroughs/deliberately-vulnerable/unescape-room/level-5-practice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
