一个加解密异或运算的小工具,切记:这个可能不是通用的,只是适合我下面介绍的特定异或函数。如果这个函数用的比较广的话,那它也就成通用的了,哈哈~
先上图:
下面说说使用:
某一个公司的某一个产品有这样的一个后台
当注入和一句话都搞不定,而扩展名为asp之类的数据库往往又下载不下来的时候,在这套系统的admin目录下有这样一个文件
看了这个图片就知道是什么东东了吧,是备份数据库,路径啥的都很清楚了,悄悄down下来。
如果用别的access查看工具就不说了,这里说下用access查看。
这个数据库有个密码,破解的工具太多了,随便挑一个。
删除密码之后再打开或者自己输入密码打开。
打开之后,记得在access的“工具”-“选项”的“显示”中勾选“隐藏对象”。
现在可以看到这样一个表
我们的目标当然是保存管理员信息的那个表,打开之,看到如下一幕
其中jacklean是一个超级管理员,破一得百。
但是我们不看这个,看看kfxx这个管理员,他的密码是7e58010a795c000c2804565d29555459,
咋一看还以为是32位的md5,抛给我群里的一个朋友跑的“大汗淋漓”也没跑出来,因为它已经不是正常的md5了,它是将密码首先经过16位md5加密,然后再异或加密得来的。它的异或函数为
Function encode(char1,key)
char2=””
j=1
For i = 1 To len(char1)
If j > len(key) Then j = 1
TempByte = asc(mid(char1,i,1)) Xor Asc(Mid(Trim(key), j, 1))
char2=char2 & DtoH(tempbyte)
j = j + 1
Next
encode=char2
end function
function DtoH(n)
hbase=”0123456789abcdef”
Dvalue=n
while Dvalue>0
Hvalue=mid(hbase,(Dvalue mod 16)+1,1) & Hvalue
Dvalue=Dvalue\16
wend
DtoH=right(“00” & Hvalue,2)
end function
function HtoD(n)
Hvalue=n
Dvalue=0
for i=0 to len(n)-1
if not isnumeric(lcase(right(Hvalue,1))) then
Tvalue=asc(lcase(right(Hvalue,1)))-asc(“a”)+10
else
Tvalue=cint(right(Hvalue,1))
end if
Dvalue=Dvalue+Tvalue*16^i
Hvalue=mid(Hvalue,1,len(Hvalue)-1)
next
HtoD=Dvalue
end function
如果想拿到密码,那么第一步就是要从这个32为的数值中拿到16位的md5值,也就是异或回去原来的值,经过一番折腾,这个小工具就呱呱诞生了,他的作用就是把异或后的32位字串转回成16位的md5值,就是第一张截图,可以看到这个kfxx的16位md5值为49ba59abbe56e057,然后跑到cmd5去查一下
一下子就出来了,原来kfxx的密码是123456。
之后窗帘渐渐拉上,两个身影逐渐模糊,灯光越来越暗……
冬天的冷夜,安静的可怕!
附件下载:
点击下载此文件
updated 2009.12.29
今天整理资料的时候发现发布这个工具的时候太过仓促,当时只是考虑到了解密这一个网站系统的异或加密,这个异或加密只要key值不同,那么就会得出不同的结果,也就是说上次发的工具只能解密这个网站的key值为JackLean的异或值。现在更新了这个小工具,只要key值不同那么异或出来的数值也是不同的,应当有蛮多程序应用这种异或的,那么如果是其它key值也应当可以解密,您不妨试试,说不定就是它……
daokers
今天一个朋友告诉我说这个文件被卡巴斯基查杀,迅速检查了一下,发现卡巴斯基查杀所有VMProtect.v1.8以上版本保护的软件,只要是这个版本保护的都被视为危险程序,如果在意这些的,请重新下载下,不在意的就无所谓了,绝对不会危害您的电脑。—2010.1.8 10:30 daokers