热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

浅析解密ASP文件(金刀客)

发布时间:2009-12-03 09:51文章来源:未知文章作者:黑白前线 点击次数:
摘要:本文源自网络,由黑白前线收集整理!...

第一次接触asp文件的解密时就被这些乱码深深的吸引了,希望能从中找到解密的良方,于是开始了对asp文件解密的探索之路,经过一段时间的摸索和研究,对于asp文件的加解密有了一定的了解,写这篇文章作为对我这段时间学习的一个总结,同时将我这段时间学习到的经验分享给大家,WEBSHELL Decoder & Encoder也作为这段时间学习的一个成果。
      要弄明白ASP文件的解密就必须首先了解asp文件的运行原理,不明白asp文件运行原理那么是无法进行解密的。现在常见的交互式动态网页技术有CGI, ASP, JSP,PHP及c#等.net语言,而asp语言提供了一个在html中使用脚本文件文件的框架,常见的脚本有Microsoft VBScript和Microsoft Jscript,而我们用的比较多的就是vbscript脚本。asp语言属于解释执行类语言,它是按照顺序一条一条来解释执行,必须是完整正确的明文代码解释器才会执行,这个asp语言的先天不足就决定了它的加密是完全可逆的,有些朋友问我怎样实现asp不可逆的加密,我想这是不可能的,语言的先天性就决定这一点。可能有些朋友会问vbscript.encode不就是不可逆的吗?非也,它同其它的自定义加密函数一样,只是这个解密函数没有包含在asp文件中而是集成到了asp.dll中,只要在asp文件中检测到有LANGUAGE = VBScript.Encode,它就会调用解密函数进行解密,然后逐行执行之,现在如果想做到不被解密只有寄希望于微软重新编写vbscript.encode。      
 

相信很多朋友解密asp文件遇到的第一个难关就是vbscript.encode的加密。对于这个微软的这个加密网上已经出来了完全解密的方法,在线的vbscript.encode解密网站都很多,需要注意的是当asp文件中含有“×”这类特殊字符时,程序将退出,这是编码原因引起的错误,只要将这个特殊字符进替换成别的字符继续解密即可。
 

进行了vbscript.encode解密后,只是剥下了这个文件第一层壳,后面的基本都是自定义函数加密了。
 asp文件的运行需要一定的脚本环境的支持,由服务器来执行asp文件中的脚本代码,对于microsoft用户来说这个环境为IIS,那么从运行环境角度来进行解密是一个方向,这个解密的特点就是必须架设iis运行asp文件来解密。另外一个方向我们可以从脚本本身这个角度来进行解密,从这个角度解密不需要iis环境的支持,而是直接解密。
 

先说在iis环境中进行解密。毫无疑问要先在系统架设好iis环境。因为这个加密都要通过ExeCuTe执行解密函数对加密字符进行解密然后执行,所以如果我们将执行换成输出函数,那么就将得到明文。对于这个解密,我介绍三种方法。
 

第一种是我比较喜欢的fso方法,来一段源码
 

 程序代码
ShiSan="~殺>ELBAT/<殺 etirW.esnopseR~殺>RT/<  殺 etirW.esnopseR~殺>DT/<    殺 etirW.esnopseR~fi dnE~殺    殺 etirW.esnopseR~殺>殺殺;)1-(og.yrotsih殺殺=kcilCno 回返=eulav nottub=epyt TUPNI<          殺 etirW.esnopseR~eslE~殺    殺 etirW.esnopseR~殺>殺殺;)(esolc.wodniw殺殺=kcilcno 闭关=eulav nottub=epyt TUPN":ExeCuTe(UZSS(ShiSan))


        这段代码ShiSan的值就是加密后的字符,UZSS是解密函数,那么我们可以这样设计,在ExeCuTe(UZSS(ShiSan))后面加如下语句,
 

 程序代码
set fs=server.CreateObject("scripting.filesystemobject")
set outpout=fs.CreateTextFile(server.mappath("ok.asp"),True)
outpout.Write(ShiSanFun(ShiSan))


那么将在这个asp文件的同目录下生成包含明文的ok.asp.这个是利用fso方法获取源码。
 

 第二种方法,原理一样,只是代码不同。在文件头部写入这个过程
 

 程序代码
Sub Write2File(strFile, strContent, blnAppend)
        On Error Resume Next
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        If blnAppend Then
                Set objWriteText = objFSO.OpenTextFile(strFile,8,True)
        Else
                Set objWriteText = objFSO.OpenTextFile(strFile,2,True)
        End If
        objWriteText.WriteLine (strContent)
        Set objWriteText = Nothing
        Set objFSO = Nothing
        Select Case Err
                Case 424 Response.Write "路径未找到或者该目录没有写入权限."
                Case Else Response.Write Err
        End Select
End Sub

只要在需要解密的地方加入
 

 程序代码
Write2File "M:\加密解密\test\1.txt", ShiSanFun(ShiSan), True


这句话,修改ShiSanFun(ShiSan)为变量值,输出文件的路径需要是绝对路径,那么运行文件明文就将写入1.txt。这个方法的优点就是函数化了,可以多次使用。
 

标签分类: 脚本安全

上一篇:SHOPEX最新漏洞利用
下一篇:MSN Editor 漏洞修复方法