赛迪网 > IT技术 IT技术关注 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

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

发布时间:2007.01.09 05:10     来源:赛迪网安全社区    作者:lvvl

破解目标:破解一经过加密的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个密码都是正确的。如果要完美破解的朋友,可以自己试着编写全部的组合。那么这步可以忽略了, 上面的算法很清晰。


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

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


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

但是还有一个问题,我们事先不知道密码的长度,没关系,幸好密码在1-10位之间,不太长。那么我们可以用一个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&"
" if mid(Ccode,templen1+1,10-templen1)=left("zxcvbnm,./",10-templen1) and templen1<>10 then result=left(Ccode,templen1) next response.write "最后密码:"&result end function

好了,算法可能在这么短的时间内无法完全掌握,这是正常的,那么我将在压缩包中附送说明文档和加解密的Asp源代码,大家拿回去好好研究吧。同样,密码10永恒正确的。那么我们将Asp里原有的密文拿过来看看,会有什么结果。

(t003)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· SQL Server 2005密码安全追踪与存储 (12-31) · 被关在SQL外面破解SA的密码的方法 (12-30)
· CES前 HD DVD防盗版技术 遭黑客破解 (12-29) · HD DVD标准被破解 用户可拷贝视频内容 (12-29)
· 教你如何打造黑客也读不懂的安全密码 (12-25) · 密码的奴隶 (12-19)
· 遭遇密码丢失 教你如何进行破解 (12-13) · 黑客利用木马获取数百游戏玩家账号和密码 (12-12)
· "黑客"称忘了密码 警方将请专业人员解密 (12-06) · RSA算法遭遇破解危机 DRM面临新威胁 (12-05)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管