破解思路:兩種,用加密后的密碼替換密文和利用密文及加密算法反解出密碼。前者根本算不上真正的破解。
破解目的:沒事破著玩。
如果得不到asp源代碼,那么可以說對破解密碼,我毫無勝算。有位華夏的朋友說他得到了一個web的權限,但是無法修改主頁,發現其中已經有個asp木馬,但密碼是經過加密的。那么就有了這篇動畫了。好了,廢話太多了,那么,作好準備,這次的解說將會相當的漫長。
asp木馬登陸密碼驗證關鍵代碼如下:
假如我們輸入的是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位,將是永遠正確的,因為后面不存在連接。所以我們可能得到兩個答案。
以下便是我編寫的解密函數
好了,算法可能在這么短的時間內無法完全掌握,這是正常的,那么我將在壓縮包中附送說明文檔和加解密的asp源代碼,大家拿回去好好研究吧:)。同樣,密碼10永恒正確的。那么我們將asp里原有的密文拿過來看看,會有什么結果。好,兩個密碼都可以登陸。
