Тестирование на проникновение 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.