Тестирование на проникновение Python - XSS веб-атака

Атаки с использованием межсайтовых сценариев - это тип внедрения, который также относится к атаке путем внедрения кода на стороне клиента. Здесь вредоносные коды вводятся на законный веб-сайт. Концепция политики одинакового происхождения (SOP) очень полезна для понимания концепции межсайтового скриптинга. SOP - самый важный принцип безопасности в каждом веб-браузере. Он запрещает веб-сайтам получать контент со страниц другого происхождения. Например, веб-страница www.tutorialspoint.com/index.html может получить доступ к содержимому изwww.tutorialspoint.com/contact.htmlно www.virus.com/index.html не может получить доступ к контенту изwww.tutorialspoint.com/contact.html. Таким образом, мы можем сказать, что межсайтовый скриптинг - это способ обойти политику безопасности SOP.

Типы XSS-атак

В этом разделе давайте узнаем о различных типах XSS-атак. Атаки можно разделить на следующие основные категории:

  • Постоянный или сохраненный XSS
  • Непостоянный или отраженный XSS

Постоянный или сохраненный XSS

В этом типе атаки XSS злоумышленник внедряет сценарий, называемый полезной нагрузкой, который постоянно хранится в целевом веб-приложении, например, в базе данных. По этой причине это называется стойкой XSS-атакой. На самом деле это самый разрушительный тип XSS-атаки. Например, злоумышленник вставляет вредоносный код в поле комментария в блоге или в сообщении на форуме.

Непостоянный или отраженный XSS

Это наиболее распространенный тип XSS-атаки, при которой полезная нагрузка злоумышленника должна быть частью запроса, который отправляется на веб-сервер и отражается таким образом, чтобы ответ HTTP включал полезную нагрузку из запроса HTTP. Это непостоянная атака, потому что злоумышленник должен доставить полезную нагрузку каждой жертве. Наиболее распространенным примером таких видов XSS-атак являются фишинговые электронные письма, с помощью которых злоумышленник привлекает жертву, чтобы сделать запрос на сервер, который содержит полезные данные XSS, и завершает выполнение сценария, который отражается и выполняется внутри браузера. .

пример

Как и SQLi, веб-атаки XSS могут быть реализованы путем манипулирования входными данными приложения. В следующих примерах мы изменяем векторы атак SQLi, выполненные в предыдущем разделе, для тестирования веб-атаки XSS. Приведенный ниже сценарий Python помогает анализировать атаку XSS с использованиемmechanize -

Для начала импортируем mechanize модуль.

import mechanize

Теперь укажите имя URL-адреса для получения ответа после отправки формы.

url = input("Enter the full url")
   attack_no = 1

Нам нужно прочитать векторы атак из файла.

With open (‘vectors_XSS.txt’) as x:

Теперь отправим запрос с каждым вектором арака -

For line in x:
   browser.open(url)
browser.select_form(nr = 0)
   browser[“id”] = line
   res = browser.submit()
content = res.read()

Следующая строка кода проверяет напечатанный вектор атаки.

if content.find(line) > 0:
print(“Possible XSS”)

Следующая строка кода запишет ответ в выходной файл.

output = open(‘response/’ + str(attack_no) + ’.txt’, ’w’)
output.write(content)
output.close()
print attack_no
attack_no += 1

XSS возникает, когда пользовательский ввод печатается в ответ без какой-либо проверки. Поэтому, чтобы проверить возможность XSS-атаки, мы можем проверить текст ответа для предоставленного нами вектора атаки. Если вектор атаки присутствует в ответе без какого-либо выхода или проверки, существует высокая вероятность атаки XSS.