HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 07.02.2024, 00:36
Xenofob
Новичок
Регистрация: 06.02.2024
Сообщений: 0
С нами: 1196269

Репутация: 0
По умолчанию



Тема немного не про ИБ, а про создание лабораторий для тренировок ИБешников .
Задался я как-то целью сделать простенькую страничку с уязвимостью в javascript. И вроде бы работает всё исправно, и флаг предоставляется при попытке увести куки, но добрые люди мне дали понять, что способ, которым я возвращаю флаг, не совсем кашерный. А именно, производилось сравнение полезной нагрузки с придуманным мной шаблоном, следовательно другие способы эксплуатации, которые я не учёл, могли быть проигнорированы.
Так, закусив новогодним винегретом, я крепко задумался, как заставить приложение реагировать на внедрённый js-код. Поскольку в разработке я не силён, мне в голову не пришло ничего лучшего кроме как создать условного админа, который бездумно будет переходить по предоставленным ему ссылкам и раздавать таким образом свои куки.

Какими же способами можно переходить по ссылкам? Первым в голову приходит curl, но он не исполняет js-код. Была мысль использовать полноценный браузер, js-движок же в нём есть, значит будет работать. И тесты подтвердили предположение, но появилась новая проблема, после открытия браузера и отрабатывания скрипта, окно необходимо закрыть, иначе накопится 100500 вкладок, а запуск через крон с последующим kill браузера частенько заканчивалось ошибкой.

Порыскав на просторах интернета, я узнал об инструменте братьев-тестировщиков, а именно, selenium-webdriver. Выбрав реализацию на JS, начинаем писать код.

Подтягиваем библиотеку и объявляем, что будем использовать браузер Firefox

Настраиваем опции, тут мы добавляем аргументы как если бы вызывали firefox из консоли.

--profile указывает местоположение папки с файлами профиля, в профиле могут быть заранее сохранены куки к определённым сайтам.
--headless говорит браузеру использовать "безголовый" режим, т.е. без монитора(без GUI)

Пишем функцию для перехода по заданным ссылкам, тут осуществляется GET-запрос

Так же при переходе можно задать отдельные куки

Немного обратной связи через консоль

И закрываем браузер после рендера страницы. При желании можно оставить открытым и плодить процессы.

Передаём адрес в функцию. Весь код выглядит так

Запускаем наш скрипт

В нормальном режиме без закрытия браузера увидим такое окно

Добавлю, что автоматизация на селениуме не идеальна. Программа отрабатывает действия быстрее человека и если это важно, то она может спалиться. Так же есть ограничения с куками при редиректе, разработчики селениума написали, что так и задумано.

А какую бы реализацию сделали вы?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.