Page 1 sur 1

Mozilla Firefox - JavaScript, Débogueur, Ardoise & Console

Publié : 16 mars 2014 06:09
par ѠOOT
Hier, Malekal m'a demandé de vérifier une portion de code JavaScript douteux
découvert sur une publicité distribuée par une régie publicitaire. Je lui ai
alors expliqué que les dernières versions de Mozilla Firefox comportent des
outils de développement qui permettent d'évaluer très rapidement des codes
suspects et même d'aller plus loin dans leur compréhension. Il y a exécution
de code, il est donc nécessaire de prendre des précautions en effectuant
ces opérations depuis un environnement virtuel adapté.

Pour afficher l'activité réseau, dans la fenêtre Mozilla Firefox, appuyez
simultanément sur les touches CTRL+MAJ+Q. Chargez ensuite la page
que vous souhaitez "surveiller", les requêtes vont alors s'afficher:

Image

C'est un moyen simple et rapide qui ne nécessite aucune connaissance.

Si l'objectif est d'en comprendre le fonctionnement, vous pouvez contrôler
l'exécution du code
afin d'avancer "pas à pas", utilisez alors le Débogueur
intégré, appuyez simultanément sur les touches CTRL+MAJ+S. Si la page
est déjà chargée, appuyez sur F5 pour rafraichir celle-ci. La source doit être visible
dans la fenêtre, si le code n'est pas pratique à parcourir, effectuez un clique-droit
pour afficher le menu contextuel, sélectionnez "Formater et indenter la source".

Dans le code que Malekal m'a refilé, les premières lignes sont:
var G = {};
G['9'] = '9';
G['Z'] = 'v';


Je me positionne sur "var G", clique-droit "Ajouter un point d'arrêt" puis F5.
Je sélectionne le nom de la variable, le "G" de "var G" puis clique-droit,
dans le menu "Expression espionne depuis la sélection". Sur le panneau latéral
de droit, dans l'encart "Variables" je me positionne sur "G", et j'appuie sur
la touche "Entrée" pour l'ajouter. Un arrêt de l'exécution va se produire,
j'ai la possibilité d'avancer "pas à pas" en appuyant sur la touche F11.

Image

J'ai un visuel sur la "construction" de G.
Suivre des codes est encore une fois simple.
Avec MAJ+F11 je reprends l'exécution.
La variable "G" est entièrement "remplie".

Je peux effectuer des opérations plus avancées sur l'ensemble des éléments qui
composent la source. Je vais utiliser Ardoise, appuyez simultanément sur
les touches MAJ+F4. Pour afficher l'objet G dans la Console web,
je vais écrire dans Ardoise console.log(G);

Admettons que j'ai besoins d'une sortie en JSON ( vidéo ) car je souhaite une
table de correspondances des caractères.

Code : Tout sélectionner

{
    '0' → 'z',
    '1' → 'W',
    '2' → 'S',
    '3' → '.',
    '4' → '4',
    '5' → '1',
    '6' → 'T',
    '7' → '&',
    '8' → 'y',
    '9' → '9',
    'Z' → 'v',
    'x' → '8',
    'U' → 'H',
    'G' → 'q',
    'e' → 'Z',
    't' → 'U',
    'B' → 'P',
    'a' → 'r',
    'L' → '?',
    'z' → 'o',
    'P' → '6',
    '=' → '2',
    'D' → 'K',
    'g' → '5',
    'S' → '/',
    'W' → 'L',
    ':' → 'R',
    'j' → 'f',
    '_' → 'w',
    'A' → 'M',
    '.' → 'Y',
    'i' → 'X',
    'Q' → 's',
    'O' → 'a',
    '/' → '=',
    's' → ':',
    'K' → '3',
    'T' → 'Q',
    'd' → 'e',
    'f' → 'N',
    'u' → 'x',
    'h' → 'B',
    'X' → 't',
    'R' → 'G',
    '&' → 'A',
    'v' → 'd',
    'M' → 'c',
    'H' → 'u',
    'l' → 'i',
    'c' → '-',
    'n' → 'h',
    'm' → 'p',
    'E' → 'k',
    'q' → 'C',
    'C' → 'D',
    'J' → 'm',
    '-' → 'I',
    '?' → 'j',
    'V' → '7',
    'y' → 'F',
    'F' → 'b',
    'o' → '0',
    'Y' → '_',
    'N' → 'n',
    'p' → 'O',
    'k' → 'l',
    'w' → 'g',
    'I' → 'J',
    'b' → 'V',
    'r' → 'E'
}
Ce qui permet de situer l'URL malveillante qui redirige vers le kit d'exploit et de comprendre comment décoder.

→ 'nXXmsSSEOkXOlQdkkOXHJdNXlQGHd3QOJJOJlQnnzJdQONvkONv3MzJSwZQjz9Kvvo'
↘ 'http://kaltaisellatumentisque.sammamishhomesandland.com/gvsfo93dd0'

Par cet exemple, j'espère vous avoir donné un aperçu des possibilités.
Libre à vous de ré-écrire comme bon vous semble ce dont vous avez besoins.