# Level 4 (practice)

## Challenge #1

### Description

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

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDEJQYKprUSiz3K2_C%2F-LsDELmfX4j9luH_5vRb%2Fcfd7d0f6f3d21f1e2f77d252a75cfe20.png?alt=media\&token=5028dc44-6472-4cce-96ef-dc041ec3d06f)

### Résolution

Un filtrage plutôt simple ici puisqu'il s'agit d'un filtre sur le caractère `"g"` ainsi que sur le caractère `"5"` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDEd5f1pGIbh_VPW1a%2F-LsDEqcbIXKulxf81NBG%2F2d5d89832f3e13b78125fcc8a9b7fed5.png?alt=media\&token=b8b2ea00-2b10-4c5f-bdd3-85298c1709f6)

La notation unicode ainsi que l'opération mathématique permet de s'en passer outre aisément :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDEd5f1pGIbh_VPW1a%2F-LsDEfROUIlvEPCp8__S%2Fc6029c256ff2a2c4ea0a458f0f77db46.png?alt=media\&token=5025bb01-120b-4cb3-8aaa-37b2a6cecd88)

## Challenge #2

### Description

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

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDIerUl4rojiz_Slex%2F-LsDIi4-oDjLoIWXoitT%2F1fa813704b5b74d0ebeed1aa8db18475.png?alt=media\&token=41813336-bd09-4dee-a1e5-698674734f2d)

### Résolution

Un filtrage est effectué sur le caractère `"e"` ainsi que sur le caractère `"4"` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDIerUl4rojiz_Slex%2F-LsDJcHLsFF7OgECPbyL%2F8cb6683a392640434e4ac82f88a5803a.png?alt=media\&token=6e0be528-0b5c-4810-8df9-d29710183456)

Je parviens à contourner ce filtre en utilisant les mêmes techniques que précédemment à savoir l'encodage unicode ainsi que l'opération mathématique :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDIerUl4rojiz_Slex%2F-LsDJE-5ynpJotHI3Dkq%2Fe5647e33c683d7e2b313528feb910ecb.png?alt=media\&token=04c849a0-fe89-4b98-a62d-2381ac240247)

## Challenge #3

### Description

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

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDJq8K0_u2BBsVCoXG%2F-LsDK3fl4egmSqLb2tuK%2F24f89eb8ee33533147db74ce62c4936c.png?alt=media\&token=ff5df564-90f3-49df-be28-273e05794abc)

### Résolution

Un mécanisme de filtrage est présent mais exclusivement sur le caractère `"e"` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDJq8K0_u2BBsVCoXG%2F-LsDKPH_QMJcBM3NuZj6%2Fc3c4a7719e90601642cd54e63a5fc83c.png?alt=media\&token=2ed96c05-1a4c-4dae-acce-a21bc4999622)

Soit, en utilisant l'encodage unicode :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDJq8K0_u2BBsVCoXG%2F-LsDKik9RQmLSNUDsxit%2F3c380c51b35637e2205767de44b3cb5f.png?alt=media\&token=a2649713-7232-4e48-a60b-1633799803f1)

Etant donné que la payload se situe dans un `href`, il ne faut pas oublier de cliquer sur le lien pour déclencher l'injection (View DOM) :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsDJq8K0_u2BBsVCoXG%2F-LsDL654_iiB1j2DEQQd%2Fffcc5eb2241bd36aa306ea0d3bdcad70.png?alt=media\&token=25d715b2-bfff-46b0-8e2c-330d8a14bc45)
