in code/utility/generate_waf_logs.py [0:0]
def simulate_user(requestTimeStamp, args, country, headers = [], userAgents=[], method = 'GET', labels=[], ipName = 'user', initialURLList = [], minInitial = -1, maxInitial = -1, randomURLList= [], minRandom = 0, maxRandom = 0,finalURLList = [], minFinal = -1, maxFinal = -1):
#print ('start simulate')
#print (labels)
#print (ipName)
requests = []
ntrules = []
l = len(initialURLList)
if userAgents == []:
uAgent = ""
else:
uAgent = random.choice(userAgents)
if not args == []:
queryString = random.choice(args)
else:
queryString = ""
ipDetails = source_ip_calculate(ipName, country, labels)
if minInitial == -1:
minInitial = l
maxInitial = l
if maxInitial == -1:
maxInitial = l
if maxInitial > l:
maxInitial = l
if minInitial > l:
minInitial = l
if not minInitial == maxInitial:
y = random.randrange(minInitial,maxInitial)
else:
y = maxInitial
#Make the initial Requests
##print ("###################################################################################################################")
##print ("###################################################################################################################")
##print ("###################################################################################################################")
##print ("User | Initial | Requests: " + str(y))
##print ("IP is: " + ipDetails['sourceip'])
if not initialURLList == []:
for x in range(0,y):
#Go the general stuff
request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
request['httpRequest']['uri'] = initialURLList[x]
##print (request['httpRequest']['uri'])
##print (request['httpRequest']['requestId'])
##print (request)
requests.append(copy.deepcopy(request))
#Make middle random requests
if minRandom >= maxRandom:
y = maxRandom
else:
y = random.randrange(minRandom,maxRandom)
##print ("User | Random | Requests: " + str(y))
##print (randomURLList)
if not randomURLList == []:
for x in range(0,y):
#Go the general stuff
request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
request['httpRequest']['uri'] = random.choice(randomURLList)
##print (request['httpRequest']['uri'])
##print (request['httpRequest']['requestId'])
requests.append(copy.deepcopy(request))
#Make final Requests
##print ("User | Final | Requests: " + str(y))
if not minFinal == maxFinal:
y = random.randrange(minFinal,maxFinal)
else:
y = maxFinal
if not finalURLList == []:
for x in range(0,y):
#Go the general stuff
request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
request['httpRequest']['uri'] = finalURLList[x]
##print (request['httpRequest']['uri'])
##print (request['httpRequest']['requestId'])
requests.append(copy.deepcopy(request))
return (requests)