ASP Vbscript.Encode 解密

 

突破ASP代码中的多重加密 - [源代码里没有秘密]

如果你看到下面这样一段代码,会不会打消对其作修改的意图?

<%@ LANGUAGE = VBScript.Encode %><%#@~^3gAAAA==@#@&s; mDkW PUnxw+m2 ZG[`ZKUYxY*@#@&P,P,fr:~(@#@&~P,~ZKxOn YPx~UwskDc;WUD+ Y~r~rb@#@&P~P,sG.,qP{~!,KW,i$W!x9`/WUOxO#@#@&P,P~~,PPjn sn{AU;W[P{P?xwn{Ax/W9+~',ZtM `;qxDcE[_J,[~ZGUD+UYv(#*#@#@&,PP~H6O@#@&3 N~wE mYbW @#@&3DkAAA==^#~@%>

如果你有点经验,或者即使还没有什么经验,只要你还没慌乱,就足以看出这是用 VBScript.Encode 加密的代码。这种加密相当好解决,附件里有个decode.htm文件,只要打开这个文件,然后把上面代码中第二对<% %>之间的内容放进代码框里,点击“解密”,就能看到明码了。

如果仅仅是这样的加密,那还不值得我们拿出来说。请看另一个文件,当然还是加密过的,我们把它解密,可以看到仍然是一些不明所以的代码--某个字符串被赋值为一大堆16进制代码,然后有一句执行。解密后的代码(省略了大部分后)成了下面这个样子:

ActiveEx="63,6F,6E,73,74,20,68……75,6E,63,74,69,6F,6E"
execute(SenFe_EnCode(ActiveEx))

当然,我们不会忽略最后一行:

execute(SenFe_EnCode(ActiveEx))

这说明,ActiveEx这个很长的字符串,还需要进一步处理(经过SenFe_EnCode函数的解密)才能执行。好办,我们把解码后的代码保存为另一个文件,只需要把“execute(SenFe_EnCode(ActiveEx))”改为“Response.Write(SenFe_EnCode(ActiveEx))”,然后执行之,看看,原本要执行的代码被输出来了。

详细可看附件:http://verysnap.blogbus.com/files/11941738620.rar 原本加密的文件不便提供,解密后的文件在decode目录下,用于解密VBScript.Encode的文件是decode.htm。

这个例子告诉我们,因为ASP最终是要执行明文的,无论作者编写了多少加密函数,作了多少重加密,最终会有一句execute语句去执行之。解读时都甚至根本不需要理会作者写的混淆加密函数,只要把最后的执行改为显示,就什么秘密都被暴露到阳光下了。

这个例子还能告诉写商业代码的作者们,这样的加密方式是徒劳无功的,千万不要把安全性建筑在这么脆弱的基础上。

 

来自:http://verysnap.blogbus.com/tag/VBScript.Encode%E8%A7%A3%E5%AF%86/

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页