+========================================+
| |
| W4RV3CT0R's Javascript 0bfuscati0n |
| |
| v1.0 |
| |
| Published On: |
| |
| www.WarveBlog.tk |
| |
+========================================+
Hi,
Je vais tenter de vous présenter les principes de l'obfuscation javascript assez simplement. =)
+ Présentation :
Le principe même de l'obfuscation javascript est de dissimuler en plusieurs couches superposées (unescape+CharCode...etc) des codes malicieux
(JavaScript/vbscript/xhtml/php...etc) aux "yeux" des différents anti-malwares et autres anti-virus du net.
+ Explications :
Comme vous l'aurez compris, le coeur du problème est de camoufler notre code javascript au milieu de la source d'une page (html et/ou php) sans être démasqué par les
systèmes de détéction de code malicieux et tant qu'à faire, compliqué le déchiffrage de notre code par qui-que-ce-soit.
Pour ce faire, il faut commencer par nous remémorer les différentes commandes javascript basic :
document.write("Notre code html ou php ou javascript ou vbscript ou sql ...etc."); // Permet d'écrire dans la page ciblée.
document.location="http://google.com" // Redirige la page ciblée vers l'url saisie.
document.cookie=""; // Crée un cookie.
Remémorons-nous également les commandes xhtml telles que :
//Création d'une frame dynamique qui est de la taille d'un carré de 1 pixel sur 1 pixel.
//Appel d'un fichier javascript (.js) pouvant être situé sur une autre ftp que celui hébergant la page infécté.
... etc
Il y à également une subtilité pour insérer du javascript, prenons l'exemple d'une xss:
-Une image est appelée dynamiquement
, avec un script PHP non sécurisé, avec possibilité de modifier le comportement de l'image.
-Injecter du xHTML, (
).
Avec: %6A%61%76%61%73%63%72%69%70%74%3A%61%6C%65%72%74%28%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%29%3B valant javascript:alert(document.cookie);.
Nous verons en trois approches les différentes façons de masquer notre code.
+ Première Approche :
"unescape"
La fonction "unescape" sera utilisée entre autres pour masquer notre code malicieux.
Cette dernière est utilisée pour retranscrire l'équivalent du code ascii vers les caractères correspondants. (l'inverse est possible par le biais de la fontion "escape".)
En voici un exemple:
%48%65%6C%6C%6F%20%57%6F%72%6C%64%20%21 étant l'équivalent ascii de: Hello World !
Cette méthode de camouflage n'est pas vraiment éfficace, il suffit d'un coup d'oeil dans la source de la page html/php hôte pour repérer notre petit code malicieux, et
notre but étant de le dissimuler, il nous faut une méthode plus éfficace...
+ Seconde Approche :
"eval"
La fonction "eval" va nous servir à n'utiliser que du code ascii pour exprimer à la fois la fonction, par exemple, "document.write("");" et notre code malicieux, sans
utiliser de caractères "normaux", bonne nouvelle, cela va compliqué les recherches ainsi que la compréhension de notre code par les propriétaires des pages inféctés.
En voici un exemple:
%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%22%48%65%6C%6C%6F%20%57%6F%72%6C%64%20%21%22%29%3B étant l'équivalent ascii de:
document.write("Hello World !");
Cette méthode bien plus efficace au niveau du camouflage face à des codeurs véritablement novices, mais nous pouvons mieux faire.
_____________
[_A suivre..._]
**********************************************************************************************************************************************************************************
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
° °
° Links: °
° °
° -http://ha.ckers.org/xss.html#XSScalc °
° °
° -http://shocknsl.com/ °
° °
° -http://yacodo.fr/ °
° °
° -http://binary-things.tk/ °
° °
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Greetz my real Friendizz:
Sh0ck; Yacodo; Purple-Eye;