
Поисковик межсайтовых утечек (XS-Leaks)
XSLeaker — это инструмент, который помогает находить XS-Leaks на веб-сайтах. Инструмент сравнивает значения ресурсов, для которых известна техника утечки (например, количество iframe), между различными состояниями.
XSLeaker состоит из двух компонентов: расширения Chrome, которое используется для сбора значений ресурсов в различных состояниях, и сервера node.js, который используется для сравнения и отображения результатов.
Следующие значения ресурсов проверяются на различия:
Предполагается, что пользователь хочет протестировать n различных состояний, тогда необходимо выполнить следующую настройку:
Создайте n профилей Chrome, по одному для каждого состояния. Поскольку профили можно использовать повторно, пользователю нужно создавать новые профили Chrome только в том случае, если требуется протестировать более n состояний.
Установите расширение XSLeaker Chrome для каждого профиля.
Эту настройку нужно выполнить только один раз, за исключением случаев, когда пользователь хочет протестировать более n состояний.
Откройте n окон браузера с разными профилями.
Активируйте расширение браузера в каждом окне. Это делается с помощью кнопки «Activate» во всплывающем окне.
По желанию выберите имя состояния (например, учётная запись администратора). Это рекомендуется, поскольку значительно упрощает идентификацию состояний в результатах.
Настройте различные состояния для тестируемого веб-сайта, по одному для каждого окна (например, вход под разными пользователями).
Выберите одно окно и активируйте Master Mode с помощью переключателя во всплывающем окне. Остальные окна теперь следуют за изменениями URL в главном окне.
В главном окне перейдите на сайт, который нужно протестировать. Каждое другое окно переходит на ту же страницу.
Начните тестирование, нажав кнопку «Send Results» во всплывающем окне главного окна.
Перейдите в веб-интерфейс (например, http://localhost:3000), предоставляемый Node.js, чтобы проверить различия.
Для следующего теста того же веб-сайта пользователю достаточно перейти на целевой URL в главном окне и снова нажать кнопку «Send Results».
Нажмите на изображение, чтобы увидеть XSLeaker в действии:
Веб-интерфейс, размещаемый с помощью node.js, имеет следующие страницы:
Results: Показывает самые последние результаты тестов.
History: Показывает все тесты, выполненные в прошлом. При нажатии на строку в таблице отображаются результаты теста.
Automation: Страница Automation позволяет пользователю загрузить список URL-адресов, которые необходимо протестировать. Кнопка «Start Test» последовательно переводит каждое подключённое окно браузера на один URL за другим и запускает тест. Результаты можно проверить в истории.
Примечание: Сначала необходимо настроить состояния, которые вы хотите тестировать, в разных окнах.
В настоящее время существует ошибка: различия, сохраняемые в базе данных, не всегда корректны. Перепроверьте различия, просмотрев результаты теста после автоматического теста.
Test: Тестовый стенд, который можно использовать для проверки правильности работы XSLeaker. На http://localhost:3000/tests можно выбрать состояние. Затем можно задать свойства, зависящие от состояния. Когда открыто несколько окон браузера с разными состояниями, перейдите на тестовый сайт (http://localhost:3000/tests/testsite) с помощью главного окна и запустите тест.

Изображение показывает архитектуру XSLeaker. Различные окна браузера с разными состояниями подключаются к node.js-приложению через WebSockets. Сервер предоставляет веб-интерфейс, где пользователь может проверить результаты тестов (см. Веб-интерфейс XSLeaker). Сервер сохраняет результаты тестов в базе данных SQLite.