# Level 3 (practice)

## Challenge #1

### Description

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

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsCzHyl2xcbNvipNOtK%2F-LsCzhHmtcvs5h6kvdkk%2F4d1c13692f07caad960ba87d19253949.png?alt=media\&token=aff3eaa7-7c25-4f13-9c2a-dca86c16f12f)

### Résolution

Il s'agit sensiblement du même filtrage que le challenge du niveau 2, à savoir un filtre sur la lettre `"t"` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsCzHyl2xcbNvipNOtK%2F-LsD-edCNAzzt_2y1gSv%2F8ae612e8bd2b21af88b656db03c75a51.png?alt=media\&token=b5b492f5-061a-4ff3-8901-ffe4e8aa4cb0)

De la même manière, je contourne le filtrage en place en utilisant le caractère filtré en majuscule ou son code unicode suivant le contexte :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsCzHyl2xcbNvipNOtK%2F-LsD-XFPDjxUnW6S0Ebh%2Fdce6d1f3ab8e38a73a96dbaa11981c61.png?alt=media\&token=ae7acc01-9637-4c6d-8657-89f8e433f87f)

## Challenge #2

### Description

Appeler la fonction `kindHuman()` avec la chaîne de caractères `"079"` 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-LsD-wl2xuq4MoaTAf-4%2F-LsD0-0n86pX0mAYToWg%2F0943bb15cb13da74a962d70a2586d934.png?alt=media\&token=de404195-acdd-47a9-9fa4-beac7ddcc180)

### Résolution

Le filtrage s'effectue ici sur le caractère `"  " (espace)` ainsi que sur le caractère `"u"` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD3Ycuu95EleJjMwDx%2F-LsD41pCaJYZHAaRPgr2%2Fea522911c40233c8212706ee9d337cfb.png?alt=media\&token=7b66f7e3-001f-4557-b30f-65cc17daa40b)

Le filtrage sur le caractère `"u"` est un peu embêtant car il m'empêche d'utiliser la notation unicode. Je change donc de technique et passe via un `String.fromCharCode()` conjointement avec la fonction `eval()` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD3Ycuu95EleJjMwDx%2F-LsD3aVlpx2iNT-BbAMF%2Febc88de4ef26d9ecceedffa1701fdec7.png?alt=media\&token=aa700faa-1def-46df-89c8-cf37b1f07926)

## Challenge #3

### Description

Appeler la fonction `kindSuperHero()` avec la chaîne de caractères `"929"` 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-LsD5cunFRp2p_0v9Hsl%2F-LsD5jGersXVBNaXGUy2%2F53dc23450b6bf3b13f9bc7ae248f64d0.png?alt=media\&token=42cb219b-6e23-4eba-8410-2612b40136d1)

### Résolution

Au sein d'un attribut `href` il est possible d'utiliser la syntaxe `javascript:code` (par exemple `href="javascript:alert(1)"`) afin d'exploiter une XSS. Dans ce cas, seul le caractère `"9"`, présent dans le paramètre de la fonction, semble être filtré :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD5cunFRp2p_0v9Hsl%2F-LsD64NQ4xsSoYnFZEKS%2F8d73ff6586ae01746409b2d3e4584e01.png?alt=media\&token=53b47001-23ee-4ecd-9ecb-14f48565a2fe)

Grâce à la concaténation (et à la conversion implicite), il est possible de représenter `"9"` par une autre opération mathématique :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD5cunFRp2p_0v9Hsl%2F-LsD7TBDWZm1HKqwJQaL%2F6cdb3d277edfa014252f5f2c8ec39248.png?alt=media\&token=57bc4155-6559-4b0e-8227-48b6dfe0c62f)

Ne pas oublier de passer par la vue DOM (View DOM) et de cliquer sur le lien afin d'exécuter la payload :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD5cunFRp2p_0v9Hsl%2F-LsD5sZwUJtzG1EUjjQH%2Fe78f7504ea6a54613e4b48862703cc82.png?alt=media\&token=cb0096a8-0738-4c7b-93ec-841beb928514)

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LsD5cunFRp2p_0v9Hsl%2F-LsD5gQG8Pg474twq3YQ%2Fc6684d0a7d4336a02c904c93f08d5c80.png?alt=media\&token=81b31911-5d4c-4053-b914-472e30253271)
