Write-Up - Opération “Brigitte Friand” - ChatBot

Bonjour à tous. Aujourd’hui je vous rédige mon premier write-up, donc j’implore votre indulgence 👍

Présentation du challenge

EvilGouv a récemment ouvert un service de chat-bot, vous savez ces trucs que personne n’aime. Bon en plus d’être particulièrement nul, il doit forcément y avoir une faille. Trouvez un moyen d’accéder à l’intranet ! Lien : https://challengecybersec.fr/b34658e7f6221024f8d18a7f0d3497e4 Indice : Réseau localLe flag est de la forme : DGSESIEE{x} avec x un hash

Première observation

Pour commencer, nous nous rendons sur le site de l’énoncé:

https://i.imgur.com/NKsoGIh.png

Voici ce nous pouvons observer:

A première vue, rien d’anormal… Bon, réflexe de base, allons faire un tour dans le code source…

Etude du code source

Lorsque nous regardons le code source, on remarque un script JS ligne, 53 !

<script src="/b34658e7f6221024f8d18a7f0d3497e4/js/script.js" type="text/javascript"></script>

Sympa ! Allons voir à quoi ça ressemble !

Etude du script.js

Dans ce script ! Nous observons deux fonctions intéressantes qui travaillent avec les URLs.

FONCTION 1

function askBot(message) {
    var url = window.location.href + "bot?message=" + message;
    fetch(url)
        .then(function (res) {
            res.json().then(function(data){
                var message = urlify(data.message)
                var urls = data.message.match(urlRegex);
                if (urls && urls.length > 0) {
                    var url = window.location.href + "proxy?url=" + urls[0];
                    fetch(url)
                        .then(function (res) {
                            console.log(res);
                            res.json()
                                .then(function (data) {
                                    if(data.err){
                                        addMessageContact(message,null);
                                    }
                                    else{
                                        addMessageContact(message,data);
                                    }
                                }).catch(function (err) {
                                    addMessageContact(message,null);
                                });
                        });
                } else {
                    addMessageContact(message,null);
                }
            });
        });
}

Sur cette fonction nous voyons que l’on peut passer des messages au bot par l’URL. Par exemple: