happyxp 发表于 2009-3-7 20:35:32

<p>ASP加密的一种方法,貌似又称为“阿琳算法”,这个方法在2004年就有人发表过,今天碰到了这种加密,顺便把解密方法写一下。</p>
<p>&nbsp;</p>
<p>ASP中有这么一段:<br/><br/>po="jq&gt;Sfrvftu/TfswfsWbsjbcmft)#TFSWFS`OBNF#*胡tfswfsjq&gt;#238/1/1/2#胡tfswfsjq3&gt;#mpdbmiptu#胡tfswfsjq4&gt;nje)jq-jotus)jq-#/#*,2-mfo)jq*.!jotus)jq-#/#**胡jg!jq&gt;tfswfsjq!ps!jq&gt;tfswfsjq3!ps!tfswfsjq4&gt;#238/1/1/2#!uifo胡tfu!st&gt;tfswfs/DsfbufPckfdu)#……(后面省掉,大体这个意思)"<br/>execute(UnEncode(po))<br/><br/>这个就是一个加密代码,加密的原理是能够将字符做程序代码来执行。UnEncode()函数实际上是一个字符操作函数.因为我们知道<br/>execute()函数只能执行可执行的字符,所以PO的值是不能直接被执行的,必须被解密成正常语句才可以,也就是说破解方式就在程序本身之中,我们再来看xpli.asp文件:<br/>&lt;%<br/>function UnEncode(temp)<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; but=1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for i =1 to len(temp)<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if mid(temp,i,1)&lt;&gt;"胡" then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; pk=asc(mid(temp,i,1))-but<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if pk&gt;126 then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk=pk-95<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; elseif pk&lt;32 then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk=pk+95<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; end if<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; a=a&amp;chr(pk)<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; else<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; a=a&amp;vbcrlf<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; end if<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; next<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; UnEncode=a<br/>end function<br/>%&gt;<br/><br/>大家发现了没有PO的值被传递到了temp中,并在UnEncode()函数中被解码。<br/>好了,解码方式就是这样。下面我给出解码程序。大家把这段代码复制下来把里面的PO的值改成你要破解的内容(shopxp中还有其他加密的地方),存为po.asp,然后在浏览器中运行就可以看到结果了。<br/><br/>&lt;%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%&gt;<br/>&lt;head&gt;<br/><br/>&lt;%<br/>dim i,pk,but,a,b<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; b="jq&gt;Sfrvftu/TfswfsWbsjbcmft)#TFSWFS`OBNF#*胡tfswfsjq&gt;#238/1/1/2#胡tfswfsjq3&gt;#mpdbmiptu#胡tfswfsjq4&gt;nje)jq-jotus)jq-#/#*,2-mfo)jq*.!jotus)jq-#/#**胡jg!jq&gt;tfswfsjq!ps!jq&gt;tfswfsjq3!ps!tfswfsjq4&gt;#238/1/1/2#!uifo胡tfu!st&gt;)……(后面省掉,大体这个意思)"<br/>&nbsp;&nbsp;&nbsp; but=1<br/>&nbsp;&nbsp; &nbsp;&nbsp; a="" &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for i =1 to len(b)<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if mid(b,i,1)&lt;&gt;"胡" then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; pk=asc(mid(b,i,1))-but<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if pk&gt;126 then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk=pk-95<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; elseif pk&lt;32 then<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk=pk+95<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; end if<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; a=a&amp;chr(pk)<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; else<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; a=a&amp;vbcrlf<br/>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; end if<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; next<br/>%&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;%= a %&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/>解密的程序一般都能找到,数值方面大同小异,因为如果不解密网站也无法运行,如果用其他方法,只要看它开头的函数就能猜到是什么方法,然后找到对应的解密工具就可以啦~~O(∩_∩)O哈哈~<br/></p>
页: [1]
查看完整版本: asp后门伪装——一种网页加密方法