多处理问题 - 在 p.start() 上"The parameter is incorrect"



我在多处理时遇到了很多麻烦 - 我真的已经尝试了几个小时,但无法正确处理。这是我的代码,评论了我能做的最好的事情。

链接了我的所有代码,因为我不知道究竟是什么原因造成的。

第 74 行它说,在 p.start(( 上

代码中最相关的部分是问题的底部。

这是我的进口

import urllib
import socket
import multiprocessing as mp
import queue
import requests

用于在连接到网站时获得更高成功机会的标头

headers={'User-agent' : 'Mozilla/5.0'}

Main 函数采用四个参数 - 队列、URL 列表、输出文件和易受攻击的 URL 列表。

def mainFunction(q, URLList, Output, vulnURLS):

此列表用于在将字符串查询添加到 url ('( 末尾后检查页面源在列表中是否存在任何错误

queries = ['SQL syntax', 'mysql_fetch', 'mysql_num_rows', 'mySQL Error', 'mySQL_connect()', 'UNION SELECT', 'MySQL server version']

这会在测试注入点之前将 URL 置于正确的格式。

URLReplace = [("['", ""),("']",""), ("n", ""), ("https://","http://"), ("s", "%20"), ("s", "%20")]
URL = ''.join(str(URLList))
for URL in URLList:
if (z < len(URLReplace)):
URL = URL.replace(URLReplace[z])
z = z + 1
URL = (URL + "'")

这是 try 请求,它尝试连接并从网页上抓取 HTML。

try:
req = requests.get(URL, timeout=2)
htmlObject = urllib.request.urlopen(URL)

这将循环访问列表以检查是否存在任何可能的漏洞。还返回 404/400 条消息。

if (y < len(queries)):
if queries[x] in htmlObject:
print ("t [+] " + URL)
vulnURLS.append(URL)
Output.open()
for VURLS in vulnURLS:
Output.write(VURLS + 'n')
Output.close()
y = y + 1
else:
print ("t [-] " + URL)
except urllib.error.HTTPError as e:
if e.code == 404:
print("t [-] Page not found.")
if e.code == 400:
print ("t [+] " + URL) 
except urllib.error.URLError as e:
print("t [-] URL Timed Out")
except socket.timeout as e:
print("t [-] URL Timed Out")
except socket.error as e:
print("t [-] Error in URL")
  • 这是重要的部分,我使用队列和多处理器。

    if __name__=='__main__':
    q = mp.Queue()
    URLList = [i.strip().split() for i in open('sites.txt').readlines()]
    Output = open('output.txt', 'r')
    vulnURLS = []
    p = mp.Process(target=mainFunction, args=(q, URLList, Output, vulnURLS))
    p.start()
    q.put(mainFunction(URLList))
    q.close()
    q.join_thread()
    p.join()
    

请帮我解决这个问题,我已经坚持了几个小时,并且对无法遵循解决方案感到非常沮丧。我看的每个模块我都遵循T并得到同样的错误。

我尝试过多线程,但与多处理相比,它非常慢且不稳定。

更改为以下内容:

p = mp.Process(target=mainFunction, args=(q, Output))
p.start()
for url in URLList:
q.put(url)

相关内容

  • 没有找到相关文章

最新更新