破解目标:
破解一asp
木马的经过
加密的登
破解asp
木马密码陆密码。由于
木马里没有版本说明,具体也不知道这
木马叫什么名。
破解思路:两种,用
加密后的密码替换密文和利用密文及
加密算法反解出密码。前者根本算不上真正的
破解。
破解目的:没事破着玩。
如果得不到asp源代码,那么可以说对
破解密码,我毫无胜算。有位华夏的朋友说他得到了一个web的权限,但是无法修改主页,发现其中已经有个asp
木马,但密码是经过
加密的。那么就有了这篇动画了。好了,废话太多了,那么,作好准备,这次的解说将会相当的漫长。
asp
木马登陆密码验证关键代码如下:
if Epass(trim(request.form("password")))="q_ux624q|p" then
response.cookies("password")="8811748"
...
<%
end select
function Epass(pass)
temppass=StrReverse(left(pass&"zxcvbnm,./",10))
templen=len(pass)
mmpassword=""
for j=1 to 10
mmpassword=mmpassword+chr(asc(mid(temppass,j,1))-templen+int(j*1.1))
next
Epass=replace(mmpassword,"'","B")
end function
%>
很明显,用的是Epass函数把输入的密码进行
加密,然后将得到的密文和原密文进行比对。如果稍有点
编程基础的话,特别是VB,那么Epass里的
加密算法将一目了然。如果没有,那么,没关系,相信经过我的讲解,你很快就会明白。函数中,保存密码的变量是pass。pass&"zxcvbnm,./" 将pass里的内容与zxcvbnm,./相连接得到一个新的字符串。left(pass&"zxcvbnm,./",10)取前10位。StrReverse函数将得到的10位字符串次序颠倒。len(pass)获得密码的长度。下面是一个循环。将得到的字符串中的每一位的Ascii码-密码长度+取整(字符所在位*1.1),然后将得到的数值转换成字符重新连接。最后将得到的字符串中有'字符的全部替换成B,这样密文的产生了。如果我们提取
加密算法用自己的密文替换原有密文,那么相映的密码也会变成你的密码。但我说过了,这并不是真正意义上的
破解。
假如我们输入的是love,
加密过程如下
love
lovezxcvbnm,./ '连接
lovezxcvbn '取前10位
nbvcxzevol '次序颠倒
n
110(ascii)-4(位数)+int(1(位置)*1.1)=107
107的ascii码为k,依次类推,最后密文:
k`ucy|hzts
我们可以通过密文和
加密算法反推出密码。从算法的最后一步开始往上推。最后一步用B替换所有',有没必要将B替换回'呢,答案是否定的。只要我们能得到最后的密文,密码不一样也是有可能的。如果有10个B,那原密码的个数就2的10次方个,虽然原密码只有一个,但是1024个密码都是正确的。如果要完美
破解的朋友,可以自己试着编写全部的组合。