fissa 发表于 2010-3-13 21:31

速道首页被人挂了木马,我把JS文件给锁死了!

这两个月老是被人挂木马。。TNND,删掉又来~~刚才把那个JS调用文件给锁死了,不能改写!不知道有没有用?能不能挡住被挂木马?gochinway59;)

fissa 发表于 2010-3-13 21:34

速道中的网路高手们~~文件设置成555,管用吗?

maxfree_gz 发表于 2010-3-13 21:47

我提几个建议吧。
1)如果是服务器本身的问题,首先给服务器供应商投诉,让他们进行杀毒处理
2)投诉服务器供应商的防火墙
3)自己更改首页配置,用跳转了避免真正的首页被插入额外的code。
下面做详细说明

fissa 发表于 2010-3-13 22:02

前两条昨天下午服务商已经做了~~

最后一条不知道咋整,这样做会不会影响搜索引擎的收录?

maxfree_gz 发表于 2010-3-13 22:19

一般的网页模式都是这样的,我就用jsp的页面来说明,php和asp都是一样的。
<%@ page language="java" contentType="text/html;charset=gb2312" errorPage="/error.jsp" %>
<%@ include file="/include/session.jsp"%>/////////////////jsp/asp/php页面功能内嵌代码
<HTML>
    <HEAD> ////////////头部分,会放每个页面都会用到的东西,例如css样式表、功能处理的js(JavaScript)
      <TITLE>首页</TITLE> /////////////首页标题
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      如果需要自己手写一些特别的javascript会在这里。
    </HEAD>
    <BODY>
      首页内容正文,包括图片和文字,在这里!
   如果需要自己手写一些特别的javascript在这里也可以的。
    </BODY>
</HTML>

fissa 发表于 2010-3-13 22:24

我要慢慢体会!gochinway02;) 我就是这个文件被改了。。。function addtag(inputid, htmlid) {
        var tagtext = document.getElementById(htmlid).innerHTML;
        var tag = document.getElementById(inputid).value;
       
        if(checktag(tag)) {
                newtag = '<input type="button" name="tagnamebtn[]" value="'+tag+'" onclick="deletetag(this)"><input type="hidden" name="tagname[]" id="tagnameid'+tag+'" value="'+tag+'">';
                document.getElementById(htmlid).innerHTML += newtag;
        }
        document.getElementById(inputid).value = '';
}

function addtagname(tagname, htmlid) {
        var tagtext = document.getElementById(htmlid).innerHTML;
        var tag = tagname;
        if(checktag(tag)) {
                newtag = '<input type="button" name="tagnamebtn[]" value="'+tag+'" onclick="deletetag(this)"><input type="hidden" name="tagname[]" id="tagnameid'+tag+'" value="'+tag+'">';
                document.getElementById(htmlid).innerHTML += newtag;
        }
}


function deletetag(thebtn) {
        if(confirm('确定删除TAG: '+thebtn.value+'?')) {
                document.getElementById('tagnameid'+thebtn.value).disabled = true;
                thebtn.disabled = true;
                thebtn.style.display = "none";
        }
}

function checktag(Sting) {

        if(Sting.length < 2 || Sting.length > 10) {
                alert('TAG长度不符合要求');
                return false;
        }
        //常用的符号
        var compStr = "§№☆★○●◎◇◆□■△▲※→←↑↓〓#&@\^_ ̄〖〗【】()[]{}.』『」「》《〉〈〕〔‘’“”々~‖∶"'`|¨ˇˉ·—…!?:;,、。~!@#$%^&*()+={}|[]\\:;\"'<,>?/";
    var length2 = Sting.length;
       
        for (var iIndex=0;iIndex<length2;iIndex++) {
                var temp1 = compStr.indexOf(Sting.charAt(iIndex));
                if(temp1>=0){
                        alert('TAG名中包含非法字符');
                        return false;
                }
        }
        return true;
}

function ShowHide(id) {
        if ( itm = document.getElementById(id) ) {
                if (itm.style.display == 'none'){
                        itm.style.display = '';
                } else {
                        itm.style.display = 'none';
                }
        }
}

function changevalue(id, value) {
        var obj = document.getElementById(id);
        obj.value = value;
}

function validate(theform) {
        var btn = document.getElementById("thevaluesubmit");
        if(btn) btn.disabled = true;
       
        //标题
        var subject = document.getElementById("subject");
        if(subject) {
                if (subject.value.length < 2 || subject.value.length > 80) {
                        alert("您输入的标题长度不符合要求(2~80),请检查确认。");
                        subject.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //标题
        var catid = document.getElementById("catid");
        if(catid) {
                if (catid.value<1) {
                        alert("请为您的信息选择一个系统分类");
                        catid.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }

        //文件后缀名
        var fileext = document.getElementById("fileext");
        if(fileext) {
                if (fileext.value.length < 1 || fileext.value.length > 15) {
                        alert("您输入的文件后缀名长度不符合要求,请检查确认。");
                        fileext.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }

        //名称
        var name = document.getElementById("name");
        if(name) {
                if (name.value.length < 1 || name.value.length > 50) {
                        alert("您输入的名称长度不符合要求,请检查确认。");
                        name.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }

        //组名称
        var groupname = document.getElementById("groupname");
        if(groupname) {
                if (groupname.value.length < 1 || groupname.value.length > 50) {
                        alert("您输入的组名称长度不符合要求,请检查确认。");
                        groupname.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }

        //用户名称
        var username = document.getElementById("username");
        if(username) {
                if (username.value.length < 1 || username.value.length > 30) {
                        alert("您输入的用户名称长度不符合要求,请检查确认。");
                        username.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //类型名称
        var typename = document.getElementById("typename");
        if(typename) {
                if (typename.value.length < 1 || typename.value.length > 30) {
                        alert("您输入的名称长度不符合要求,请检查确认。");
                        typename.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //类型名称
        var field = document.getElementById("field");
        if(field) {
                if (field.value.length < 1 || field.value.length > 30) {
                        alert("您输入的名称长度不符合要求,请检查确认。");
                        field.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //空间名称
        var spacename = document.getElementById("spacename");
        if(spacename) {
                if (spacename.value.length < 1 || spacename.value.length > 30) {
                        alert("您输入的空间名称长度不符合要求,请检查确认。");
                        spacename.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //空间名称
        var importtext = document.getElementById("importtext");
        if(importtext) {
                if (importtext.value.length < 1 || importtext.value.length > 30) {
                        alert("您输入的导入文本长度不符合要求,请检查确认。");
                        importtext.focus();
                        if(btn) btn.disabled = false;
                        return false;
                }
        }
       
        //页面自定义
        if(typeof window.thevalidate == 'function') {
                if(thevalidate(theform)) {
                        return true;
                } else {
                        if(btn) btn.disabled = false;
                        return false;
                }
        }

        return true;
}

function listsubmitconfirm(theform) {
        theform.listsubmit.disabled = true;
        if(confirm("您确定要执行本操作吗?")) {
                theform.listsubmit.disabled = false;
                return true;
        } else {
                theform.listsubmit.disabled = false;
                return false;
        }
}

function getid(id) {
        return document.getElementById(id);
}

function uploadFile(mode) {
        var theform = document.getElementById("theform");
        var msg = document.getElementById("divshowuploadmsg");
        var msgok = document.getElementById("divshowuploadmsgok");
        var oldAction = theform.action;
        var oldonSubmit = theform.onSubmit;
        msgok.style.display = 'none';
        msg.style.display = '';
        msg.innerHTML = "正在上传中,请您稍等......";
        theform.action = siteUrl + "/batch.upload.php?mode=" + mode;
        theform.onSubmit = "";
        theform.target = "phpframe";
        theform.submit();
        theform.action = oldAction;
        theform.onSubmit = oldonSubmit;
        theform.target = "";
        if(mode ==2) {
                delpic();
        }
        return false;
}

function attacheditsubmit(aid) {
        var theform = document.getElementById("theform");
        var oldAction = theform.action;
        var oldonSubmit = theform.onSubmit;
        theform.action = siteUrl + "/batch.upload.php?editaid=" + aid;
        theform.onSubmit = "";
        theform.target = "phpframe";
        theform.submit();
        theform.action = oldAction;
        theform.onSubmit = oldonSubmit;
        theform.target = "";
        return false;
}

/**
* showmenu/hidemenu 会用hideshowtags取代
*/
function showmenu(id) {
        var thismenu=document.getElementById(id);
        thismenu.style.display="block";
}
function hidemenu(id) {
        var thismenu=document.getElementById(id);
        thismenu.style.display="none";
}
/**
* 隐藏并显示上传DIV中的指定标签
* @param string id: 待显示的标签ID
*/
function hideshowtags(upid,id) {
        //获取上传DIV对象
        var uploadobj = getbyid(upid).getElementsByTagName('div');
        for(var i=0; i< uploadobj.length; i++) {
                if(uploadobj.id.indexOf('upload') != -1) {
                        uploadobj.style.display = "none";
                }
        }
        var showtagobj = getbyid(id);
        showtagobj.style.display = "block";
       
        var tags = getbyid(upid).getElementsByTagName('div').getElementsByTagName('a');
        for(var i=0; i< tags.length; i++) {
                tags.className = "";
        }
        if (getbyid(id+'tab')) { getbyid(id+'tab').className = "current"; }
}
/***************批量上传调用开始***********************/
/**
* 插入一个预览图片
* @param object obj: 上传文本框对象
*/
function insertimg(obj) {
        var childnum = getbyid("batchdisplay").getElementsByTagName("input");        //获取上传控制个数
        var upallowmax = getbyid("uploadallowmax").value;
        //判断是否超过限制
        if(upallowmax < childnum.length ) {
                alert("一次允许最多上传"+ upallowmax +"个");
                return false;
        }
        //获取最高ID
        var id =getmaxid();
        //添加默认的DIV
        var pichtml = '';
        var src = obj.value;
       
        //判断文件类型
        var patn = /\.jpg$|\.jpeg$|\.gif$|\.png$|\.bmp$/i;
        var filetype = 'file';
        if(patn.test(src)){
                filetype = 'image';
               
        }
       
        var temp_title = src.substr(src.lastIndexOf('\\')+1);
        if(src.lastIndexOf('.') != -1){
                temp_title = temp_title.substr(0,(src.substr(src.lastIndexOf('\\')+1)).lastIndexOf('.'));
        }
        pichtml += '<div class="picspace" id="pic_space_' + id + '" onmouseover="mouseoverpic(' + id + ', 0)" onmouseout="mouseoutpic(' + id + ', 0)">';
        pichtml += '<a href="javascript:;" onclick="delpic('+id+');" style="float: right; margin: 10px 5px 0 0;">删除</a>';
        if (navigator.userAgent.toLowerCase().indexOf('ie') < 0 || filetype != 'image') {
                pichtml += '<img src="admin/images/upload_file.gif" alt="upload file" class="nopreview" align="absmiddle" />';
        } else {
                pichtml += '<img src="' + src + '" id="pic_item_id_' + id + '" align="absmiddle" />';
        }
        pichtml += '<span class="pictext" id="pic_text_' + id + '">';
        pichtml += '<label id="label_pic_' + id + '" title="'+getStrbylen(temp_title,40)+'"><span id="pic_' + id + '">'+getStrbylen(temp_title,16)+'</span><inputid="pic_input_' + id + '" type="text" name="picname[]" value="'+temp_title+'" style="display: none;" /></label>';
        pichtml += '</span><div style="display:none;"><input type="text" name="title[]" value="'+ temp_title +'" id="pic_title_' + id + '" /><input type="text" name="thumb[]" value="'+ (getbyid('uploadthumb2') == null?"":getbyid('uploadthumb2').value) +'"/></div>';
        pichtml += '</div>';

        // 把图片框加到pic_space_main中去
        var picmain = getbyid("batchpreview");
        picmain.innerHTML = picmain.innerHTML + pichtml;
        obj.style.display = 'none';        //隐藏当前的上传对象
        var newid = id+1;        //获取下一个最大的上传ID并创建新的上传控件
        addupload(newid);        //创建一个新的上传控制
}
/**
* 添加一个新的上传对象控件
* @param int newid: 新的上传控件ID后缀
*/
function addupload(newid) {
        //两种生成方式,解决浏览器之间的兼容性问题
        try{
                //IE模式下的创建方式,解决常规setAttribute设置属性带来的一些未知的错误
                var uploadHTML = document.createElement("<input type=\"file\" id=\"batch_" + newid + "\" name=\"batchfile[]\" onchange=\"insertimg(this)\" class=\"fileinput\">");
                getbyid("batchdisplay").appendChild(uploadHTML);
        }catch(e) {
                //非IE模式则须要用下列的常规setAttribute设置属性,否则生成的结果不能正常初始化
                var uploadobj = document.createElement("input");
                uploadobj.setAttribute("name", "batchfile[]");
                uploadobj.setAttribute("onchange", "insertimg(this)");
                uploadobj.setAttribute("type", "file");
                uploadobj.setAttribute("id", "batch_" + newid);
                uploadobj.setAttribute("class", "fileinput");
                getbyid("batchdisplay").appendChild(uploadobj);
        }
}
/**
* 得到页面中可用的最大ID号
* 写这个函数主要是因为不能通过图片的个数来计算可用的最大ID号.
* 图片是可以取消的,如果取消,则通过图片个数算出的最大ID号会与已有图片的ID号重叠.
*/
function getmaxid() {
        var items = getbyid("batchdisplay").getElementsByTagName("input");
        var count = items.length;
        var id = 0;
        for (var i=0; i<count; i++) {
                if(items.id.substr(0, 6) == "batch_") {
                        tmp_id = new Number(items.id.substr(6));
                        if(id < tmp_id) {
                                id = tmp_id;
                        }
                }
        }
        if(id == 0) {
                return 1;
        }
        id = new Number(id);
        return id;
}
/**
* 截取指定字符串长度
* @param string str: 要截取的字符串
* @param int len: 要截取的长度
* @return
*/
function getStrbylen(str, len) {
        var num = 0;
        var strlen = 0;
        var newstr = "";
        var laststrlen = 1;
        var obj_value_arr = str.split("");
        for(var i = 0; i < obj_value_arr.length; i ++) {
                if(i < len && num + byteLength(obj_value_arr) <= len) {
                        num += byteLength(obj_value_arr);
                        strlen = i + 1;
                }
        }
        if(str.length > strlen) {
                if(byteLength(str.charAt(strlen-1)) == 1){
                        laststrlen = 2;
                }
                newstr = str.substr(0, strlen-laststrlen) + '…';
        } else {
                newstr = str;
        }
        return newstr;
}
/**
* 判断中英问混排时候的长度
* @param string sStr: 混排的字符串
*/
function byteLength (sStr) {
        aMatch = sStr.match(/[^\x00-\x80]/g);
        return (sStr.length + (! aMatch ? 0 : aMatch.length));
}
/**
* 鼠标移到预览图事件
* @param int id: 操作对象ID反缀
* @param int optype: 操作类型
*/
function mouseoverpic(id,optype) {
        if(optype == 1) {
                var delpicbutton = getbyid("del_pic_button" + id);
                if(delpicbutton.style.display != "inline") {
                        delpicbutton.style.display="inline";
                }
        } else if(optype == 0) {
                getbyid("pic_" + id).style.display = "none";
                getbyid("pic_input_" + id).style.display = "inline";
        }
}
/**
* 鼠标移出预览图事件
* @param int id: 操作对象ID反缀
* @param int optype: 操作类型
*/
function mouseoutpic(id, optype) {
        if(optype == 1) {
                var delpicbutton = getbyid("del_pic_button" + id);
                delpicbutton.style.display="none";
        } else if(optype == 0) {
                var picobj = getbyid("pic_" + id);
                var inputobj = getbyid("pic_input_" + id);
                var labelobj = getbyid("label_pic_" + id);
                picobj.style.display = "inline";
                inputobj.style.display = "none";
                //判断是否为空,如果为空则取默认的文件名称
                var re = /\s/ig;
                   var result = inputobj.value.replace(re, "");
                if(result == "") {
                        inputobj.value = getbyid("pic_title_" + id).value;
                }
                picobj.innerText = inputobj.value;
                labelobj.title = inputobj.value;
        }
}
/**
* 删除全部预览图或其中的某一张
* @param int pid: 要删除的预览图ID后缀,如没有填写则删除全部的预览图
*/
function delpic(pid) {
        //判断是否有传删除的图片ID,如果没有则删除全部的图片
        if(typeof pid != "undefined") {
                getbyid("batchpreview").removeChild(getbyid("pic_space_"+pid));
                //删除相对应的上传控件
                getbyid("batchdisplay").removeChild(getbyid("batch_" + pid));
        } else {
                //获取全部图片对象
                var previewobj = getbyid("batchpreview");
                var allobj = previewobj.getElementsByTagName("div");
                for(var i = allobj.length - 1; 0<=i; i--) {
                        if(allobj.id.indexOf("pic_space_") != -1) {
                                previewobj.removeChild(allobj);
                        }
                }
                var bdisplay = getbyid("batchdisplay");
                var allupobj = bdisplay.getElementsByTagName("input");
                for(var i = allupobj.length - 1; 0<=i; i--) {
                        bdisplay.removeChild(allupobj);
                }
                addupload(1);
        }
        return false;
}
/***************批量上传调用结束***********************/
//显示工具条
function hidetoolbar() {
        window.parent.document.getElementById("toolbarframe").style.display="none";
}
function hidetoolbarOpera() {
        if (navigator.userAgent.toLowerCase().indexOf('opera') > -1) {
                window.parent.document.getElementById("toolbarframe").style.display="none";
        }
}

function showtoolbar() {
        document.getElementById("toolbarframe").style.display = "block";
}

//切换频道
function channelNav(Obj, channel) {
        var channelTabs = document.getElementById('topmenu').getElementsByTagName('a');
        for (i=0; i<channelTabs.length; i++) {
                channelTabs.className = '';
        }
        Obj.className = 'current';
        Obj.blur();
       
        var sideDoc = window.parent.leftframe.document;
        var sideChannels = sideDoc.getElementsByTagName('div')
        for (i=0; i<sideChannels.length; i++) {
                sideChannels.style.display = '';
        }
        var sideChannelLinks = sideDoc.getElementsByTagName('a')
        for (i=0; i<sideChannelLinks.length; i++) {
                sideChannelLinks.className = '';
        }
        var targetChannels = channel.split(',');
        sideDoc.getElementById(targetChannels).getElementsByTagName('a').className = 'current';
        for (i=0; i<targetChannels.length; i++) {
                sideDoc.getElementById(targetChannels).style.display = 'block';
        }
}


//树形菜单
function treeView() {
        var list = document.getElementsByTagName('div');
        for ( i=0; i<list.length; i++ ) {
                list.getElementsByTagName('h3').onclick = function() {
                        if (this.parentNode.getElementsByTagName('ul').style.display == '') {
                                this.parentNode.getElementsByTagName('ul').style.display = 'none';
                        } else {
                                this.parentNode.getElementsByTagName('ul').style.display = '';
                        }
                }
        }

        var list = document.getElementsByTagName('span');
        for ( i=0; i<list.length; i++ ) {
                list.getElementsByTagName('h4').onclick = function() {
                        if (this.parentNode.getElementsByTagName('ul').style.display == '') {
                                this.parentNode.getElementsByTagName('ul').style.display = 'none';
                        } else {
                                this.parentNode.getElementsByTagName('ul').style.display = '';
                        }
                }
        }
       
        var linkitem = document.getElementsByTagName('a');
        for ( j=0; j<linkitem.length; j++ ) {
                linkitem.onclick = function() {
                        for ( k=0; k<linkitem.length; k++ ) {
                                linkitem.className = '';
                        }
                        this.className = 'current';
                        this.blur();
                }
        }
}

//侧栏开关
function sideSwitch() {
        var mainFrame = window.parent.document.getElementById('mainframeset');
        var switcher = document.getElementById('sideswitch');
        if (mainFrame.cols == '0,*') {
                mainFrame.cols = '200,*';
                switcher.innerHTML = '关闭侧栏';
                switcher.className = 'opened';
        } else {
                mainFrame.cols = '0,*';
                switcher.innerHTML = '打开侧栏';
                switcher.className = 'closed';
        }
}

function robotReferUrl(mode) {
        var theform = document.getElementById("theform");
        var msg = document.getElementById("divshowrobotmsg");
        var msgok = document.getElementById("divshowrobotmsgok");
        var oldAction = theform.action;
        var oldonSubmit = theform.onSubmit;
        msgok.style.display = 'none';
        msg.style.display = '';
        msg.innerHTML = "正在读取中,请您稍等......";
        theform.action = siteUrl + "/batch.common.php?action=" + mode;
        theform.onSubmit = "";
        theform.target = "phpframe";
        theform.submit();
        theform.action = oldAction;
        theform.onSubmit = oldonSubmit;
        theform.target = "";

        return false;
}

function cpmenus(id) {
        for(i=0; i<9; i++) {
                if($('menus_'+i) != null) {
                        $('menus_'+i).style.display = id == -1 || i==id ? '': 'none';
                }
        }
        for(i=-1; i<9; i++) {
                if($('li_'+i) != null) {
                        $('li_'+i).className = $('li_'+i) != null && i != id ? '' : 'active';
                }
        }
}

fissa 发表于 2010-3-13 22:26

597行。。看上去好长哦。。。gochinway02;)

maxfree_gz 发表于 2010-3-13 22:33

首先我们得看看首页用的js文件,都是那里进去的。
地方有两个,一个就是<head>的部分,一个就是顶部include部分。

如果木马仅仅是在这两个部分加了插入js的代码,那么做下面改动。
把index.php复制一份,rename成inde.php,这样root目录下面就有这两个文件。
index.php
inde.php
接着,手动清除inde.php里面的木马js指向,或者是js的内容。
例如fissa说道的什么js文件,看看是哪里指向的,直接删掉试试。
inde.php将会作为真正的首页。

然后在index.php的底部找到</html>,替换成下面的代码。

<script language="JavaScript">
self.location.replace("index.php");
</script>
</html>
注意最后的</html>要保留

maxfree_gz 发表于 2010-3-13 22:36

基本的方向就是这样,原来的index.php不动。
用页面底部的js代码,直接访问的时候就跳转到inde.php。
由于index.php和inde.php两个文件内容基本一样,所以应该不影响搜索引擎对首页的排序的。
而木马一般只会搞index.php,但是我们真正的首页是inde.php,木马程序不会知道的,除非人为,一般不会再有问题的。

fissa 发表于 2010-3-13 22:37

首先我们得看看首页用的js文件,都是那里进去的。
地方有两个,一个就是的部分,一个就是顶部include部分。 ...
maxfree_gz 发表于 2010-3-13 22:33 http://chinway.com.cn/bbs/images/common/back.gif


    gochinway50;) 喔。。我好像有点开窍了、。。。

我现在都是笨办法,直接给覆盖掉。。。gochinway06;)
页: [1] 2
查看完整版本: 速道首页被人挂了木马,我把JS文件给锁死了!


速道改装车社区论坛所有帖子仅代表作者本人意见,不代表本网站立场。
转载文章请注明作者及出自"速道性能车改装车网(http://www.chinway.com.cn)",如用于商业用途请联系原作者

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

©2007-2020 速道性能改装车网