巧妙破解开别人ASP木马密码的方法

kqbdtw

kqbdtw

2016-02-19 19:29

下面这个巧妙破解开别人ASP木马密码的方法教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

  破解目标:破解一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
  %

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  很明显,用的是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个密码都是正确的。如果要完美破解的朋友,可以自己试着编写全部的组合。

  那么这步可以忽略了。

  上面的算法很清晰,

  chr(asc(mid(temppass,j,1))-templen+int(j*1.1))

  我们只要简单的将+和-换一下就可以了。

  chr(asc(mid(temppass,j,1))+templen-int(j*1.1))

  但是还有一个问题,我们事先不知道密码的长度,没关系,幸好密码在1-10位之间,不太长。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  那么我们可以用一个1到10的循环求出所有可能的密码,再将其用StrReverse函数次序颠倒。

  那么最后得到的密码我们该怎么确定哪个就是呢。可以根据pass&"zxcvbnm,./",看除密码最后是否有zxvbnm,./的前几位。

  那么这就是真正的密码。那么如果密码是10位,将是永远正确的,因为后面不存在连接。所以我们可能得到两个答案。

  以下便是我编写的解密函数:

  
  function Ccode(code)
  for templen1=1 to 10
  mmcode=""
  for j=1 to 10
  mmcode=mmcode+chr(asc(mid(code,j,1))+templen1-int(j*1.1))
  next
  Ccode=strReverse(mmcode)
  response.write "密码"&templen1&":"&Ccode&"br"
  if mid(Ccode,templen1+1,10-templen1)=left("zxcvbnm,./",10-templen1) and templen110 then
  result=left(Ccode,templen1)
  next
  response.write "最后密码:"&result
  end function

  好了,算法可能在这么短的时间内无法完全掌握,这是正常的,那么我将在压缩包中附送说明文档和加解密的asp源代码,大家拿回去好好研究吧。同样,密码10永恒正确的。那么我们将asp里原有的密文拿过来看看,会有什么结果。好,两个密码都可以登陆。为测试我在本地假设了个iis,如果本地无法架设web服务器,可以联系本人,用其他语言编写。

展开更多 50%)
分享

猜你喜欢

巧妙破解开别人ASP木马密码的方法

Web开发
巧妙破解开别人ASP木马密码的方法

巧妙设置QQ密码 气死嚣张木马

电脑入门
巧妙设置QQ密码 气死嚣张木马

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

巧妙设置QQ密码气死嚣张木马

电脑入门
巧妙设置QQ密码气死嚣张木马

手机wifi密码破解与查看破解后密码的方法

手机软件 应用软件
手机wifi密码破解与查看破解后密码的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

QQ空间相册密码破解方法相册密码怎么破解

电脑入门
QQ空间相册密码破解方法相册密码怎么破解

关于防止密码被木马窃取的方法

电脑入门
关于防止密码被木马窃取的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

实用的ASP连接数据库的函数

实用的ASP连接数据库的函数

WPS文字2024实现中文繁简的转换

WPS文字2024实现中文繁简的转换
下拉加载更多内容 ↓