У меня есть этот метод, в котором я автоматизирую xss-атаку с помощью инструмента XSSsrtike (https://github.com/s0md3v/XSStrike/wiki/Usage), есть ли лучший способ проверить результаты инструмента? в настоящее время я делаю это на основе размера файла журнала, если размер файла журнала равен 0, в противном случае тестовый проход не выполняется. это генерирует много файлов журнала, когда я устанавливаю URL-адреса для проверки xss-атаки.
есть ли способ использовать вывод инструмента для проверки результатов? Я фильтрую вывод консоли, задавая этот параметр
--console-log-level VULN
, поэтому инструмент печатает в консоли только при наличии результатов vuln, иначе ничего не печатает
tooloutput = subprocess.getoutput(command)
print("INFO: XSSStrike TOOL FULL RESULTS: " + tooloutput)
полный метод
def run_xss_strike_tool(self, data, tool_path):
for value in data:
if not value["ignore"]:
clean_list = list(set(self.form_urls))
for url in clean_list:
print("INFO : running XSS Injection on paths: " + url)
jsonName = datetime.now()
jsonNamewithoutSpace = str(jsonName).replace(" ", "")
jsonNamewithoutdots = str(jsonNamewithoutSpace).replace(".", "-")
formatName = str(jsonNamewithoutdots).replace(":", "-")
depth = value["crawl-depth"]
if self.cookie == '':
command = "cd " + tool_path + " && python xsstrike.py -u " + url + " --params --crawl -l " + depth + " --skip --blind --file-log-level VULN --console-log-level VULN --log-file " + formatName
else:
cookie_para = f'"cookie:{self.cookie}"'
command = "cd " + tool_path + " && python xsstrike.py -u " + url + " --header " + cookie_para + " --params --crawl -l " + depth + " --skip --blind --file-log-level VULN --console-log-level VULN --log-file " + formatName
print(command)
tooloutput = subprocess.getoutput(command)
print("INFO: XSSStrike TOOL FULL RESULTS: " + tooloutput)
fullpath = tool_path + formatName
filesize = os.stat(fullpath).st_size
print(fullpath + " has size of " + str(filesize))
if filesize == 0:
print('XSS injection check : \' results:\' \'' "None" '\'' + \
' ... [ ' + self.OKGREEN + 'OK' + self.endColor + ' ]')
if filesize > 0:
self.nm_of_fails += 1
print(
'XSS injection check : \' results:\' \''" found vulnerable pages to xss injection " '\'' + \
' ... [ ' + self.WARNING + 'WARN' + self.endColor + ' ]')
print(tooloutput)
# todo remove logfile
else:
print("INFO : XSS Injection is skipped!")