首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sql注入多线程Python3

使用Sql注入多线程Python3
EN

Stack Overflow用户
提问于 2022-03-30 16:07:27
回答 1查看 92关注 0票数 0

下午好,我有一个问题我解决不了。我想在Hack The Box (合法平台)中执行SQL注入。情况是,我试图对服务器执行一个查询,如果查询是有效的,服务器需要两秒钟才能返回响应。为了加快速度,我想用线程.问题的出现是因为如果我尝试用线程模块来完成它,它对我来说就不正确了,线程开始和完成的顺序很重要。我给你们举个例子:

代码语言:javascript
复制
from threading import Thread

import time

import string


def prueba(a):

    if a in letras:
        time.sleep(2)
        letras_agregadas.append(a)



letras_agregadas = []

progreso = ""

letras = ["a", "k", "s", "C", "F", "Z"]

antes = time.time()

for letra in string.ascii_letters:

    h1 = Thread(target=prueba, args=(letra,))

    h1.start()

resultado = "".join(letras_agregadas)

despues = time.time()

print("".join(letras_agregadas) + "antes")

print(resultado)

print(antes - despues)

我想要"resultado“变量按照接收到的顺序获得字母,但是程序结束了,并且没有添加任何东西到"resultado",我尝试过使用.join(),但是程序所用的时间与不使用线程的时间相同,非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2022-05-14 19:39:00

您可以尝试使用multiprocessing并使用Pool运行所有内容,这允许您跨多个变量进行等位化。

我就是这样做的:

代码语言:javascript
复制
from multiprocessing import Pool
def prueba(a):
    letras_agregadas = []
    if a in letras:
        time.sleep(2)
        letras_agregadas.append("".join(a+'antes'))
    return letras_agregadas


progreso = ""

letras = ["a", "k", "s", "C", "F", "Z"]

antes = time.time()
if __name__ == '__main__':
    with Pool(5) as p:
        h1 = p.map(prueba, letras)
        print(h1)

产出:

代码语言:javascript
复制
['aantes'], ['kantes'], ['santes'], ['Cantes'], ['Fantes'], ['Zantes']

另外-你想要达到的目标有些混乱。例如,为什么要执行此print("".join(letras_agregadas) + "antes"),然后将antes = time.time()作为time操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71680592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档