#21 Bug Bounty v.2 — Cross-Site Scripting (XSS). Stored XSS.
Здравствуйте, дорогие друзья.
Если вы понимаете, как использовать отраженный XSS, то изучение сохраненного XSS не составит труда. Единственное различие между сохраненным XSS и отраженным XSS заключается в том, что сохраненный XSS будет где-то постоянно храниться, а отраженный XSS — нет.
На рисунке выше полезная нагрузка XSS хранится в (базе данных, Json-файле, XML-файле), и извлекается приложением. Это означает, что как только пользователь посетит уязвимую конечную точку, полезная нагрузка XSS будет извлечена и выполнена приложением.
При поиске этой уязвимости вы должны подумать о том, какую информацию приложение сохраняет в своей базе данных и выводит на экран. Ниже приведены некоторые примеры:
● Электронная почта
● Имя пользователя
● Биография
● Адрес
● Комментарии
● Изображения
● Ссылки
Как вы можете видеть выше, в приложении можно сохранить и отобразить множество потенциальных возможностей. Например, когда вы регистрируетесь на веб-сайте, вам нужно будет войти под своим именем пользователя. Это имя пользователя может использоваться для отображения приветствия, сообщения об ошибке или для многих других целей. Если разработчик не исправит это значение, это может привести к появлению XSS.
Еще одна популярная функция, используемая для хранения пользовательских данных, — это комментарии. На многих веб-сайтах есть возможность написать комментарий и отобразить его на странице. Это идеальный способ место для сохраненных XSS-файлов.
Как показано выше, у нас есть приложение, которое позволяет пользователям оставлять комментарии. Если мы введем строку “<script>alert(0)</script>” в качестве нашего комментария, он будет сохранен приложением и показан каждому пользователю, который посетит страницу.
Если вы посмотрите на строку “121”, то увидите, что наша полезная нагрузка выполняется приложением. Это означает, что любой пользователь, посещающий эту конечную точку, увидит знаменитое предупреждение.
Как вы можете заметить, сохраненный XSS очень похож на отраженный XSS. Единственное отличие заключается в том, что наша полезная нагрузка сохраняется приложением и выполняется каждым пользователем, который посещает уязвимую конечную точку.
На этом все. Всем хорошего дня!