破解别人的asp木马密码的方法

所属分类: 实用技巧 / 漏洞研究 阅读数: 582
收藏 0 赞 0 分享
    破解目标:破解一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      '次序颠倒 

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&"<br>" 
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里原有的密文拿过来看看,会有什么结果。好,两个密码都可以登陆。 
为测试我在本地假设了个iis,如果本地无法架设web服务器,可以联系本人,用其他语言编写 
更多精彩内容其他人还在看

MySQL Proxy(解决注入的另一思路)

MySQL Proxy的主要作用是用来做负载均衡,数据库读写分离的。但是需要注意的是,MySQL Proxy还有个强大的扩展功能就是支持Lua语言——魔兽也是使用了Lua来开发游戏,据我所知网易也是——可以参见云风的博客。
收藏 0 赞 0 分享

phpwind管理权限泄露漏洞利用程序发布

phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作
收藏 0 赞 0 分享

分析NtGodMode.exe干了什么

NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0 这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1 为什么mov al,1,以后就不用密码了?
收藏 0 赞 0 分享

伯乐asp收信程序漏洞及利用程序利用代码

信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 文章作者:fhod 发这个也是因为看了asm所写的新概念收信程序 箱子永远不会被黑
收藏 0 赞 0 分享

字符集导致的浏览器跨站脚本攻击分析

前言:这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大,希望各大站快速修复。可以看看http://applesoup.googlepages.com/。
收藏 0 赞 0 分享

Search Engine XSS Worm

作者:余弦 来源:0x37 Security 有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。
收藏 0 赞 0 分享

CPU也有远程攻击漏洞 英特尔匆匆修补

BEAREYES.COM 北京 [ 翻译 ] 作者:1000years 日期:2008年08月12日
收藏 0 赞 0 分享

暂时屏蔽 IE 最新 0day的4 种方法

IE 最新 0day 波及了微软全线系统居然在2008年12月14日8:00:15还没有出补丁!我查看微软站点,好像有几个手动操作的办法暂时屏蔽。
收藏 0 赞 0 分享

Sql Server 应用程序的高级Sql注入第1/2页

这篇文章讨论常用的"sql注入"技术的细节,应用于流行的Ms IIS/ASP/SQL-Server平台。这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的方法。
收藏 0 赞 0 分享

ASP木马后门新思路

ASP木马后门新思路
收藏 0 赞 0 分享
查看更多