WorksheetsUntitled Quiz
Total questions: 22
Worksheet time: 11mins
Какое действие является хорошей защитой от SQL Injection?
Отключение POST-запросов
Использование длинных паролей
Использование параметризованных запросов
Увеличение размера буфера сервера
Какой основной признак атаки Man-in-the-Middle на локальной сети?
Увеличение задержки без изменения маршрута
Несоответствие MAC-адресов
Рост количества broadcast-пакетов
Уменьшение TTL
Как браузер непреднамеренно выполняет CSRF-запрос?
Из-за ошибок DNS
Используя ранее сохраненные Cookies
Через ARP-таблицу
Через SQL-инъекцию
Какой метод XSS не зависит от взаимодействия пользователя?
Stored XSS
DOM-based XSS
Session XSS
Reflected XSS
Local XSS
Как определить Blind SQLi?
Сервер отказывается в выполнении запроса
Сервер перенаправляет на новую страницу
Сервер возвращает SQL-ошибки
Сервер закрывает соединение
Ответ сервера не содержит ошибок, но изменяет поведение при разных условиях
Что делает ARP Poisoning в рамках MITM?
Изменяет доменное имя
Связывает IP жертвы с MAC атакующего
Проводит XSS атаку
Устанавливает TCP-сессию
Как получить MAC-адрес жертвы для ARP Poison?
Выполнить SQL-запрос
Создать reverse shell
Проводить XSS
Генерировать ICMP flood
Анализировать ARP-трафик в локальной сети
Time-based Blind SQLi определяется по:
Повышению ошибок
Задержке ответа при выполнении условии
Изменению заголовков
Перегенерации cookies
Какие Cookies уязвимы при MITM?
Cookies с SameSite-Strict
Cookies с Secure
Session cookie без HTTPS
Шифрованные cookies
Для каких целей используется обратная оболочка?
Для сниффинга ARP
Для фильтрации
Для удаленного выполнения команд атакующим
Для брутфорса
Что делает keylogger уровня kernel?
Выполняет XSS-фильтрацию
Подменяет DNS
Шифрует трафик
Анализирует SQL
Перехватывает нажатия до уровня пользователя
Что делает упаковиватель вредоносного ПО?
Меняет MAC-адрес
Фильтрует SQL
Ускоряет выполнение
Скрывает сигнатуры, изменяя структуру
В чём отличие execve() от execvp() с точки зрения безопасности в контексте setuid?
execve() требует явного пути и окружения, тогда как execvp() ищет команду через PATH, что делает её уязвимой к подмене через PATH.
execve() всегда вызывает shell (/bin/sh -c), который использует PATH и переменные окружения, позволяя пользовательским данным превратиться в команды, а execvp() нет.
execve() всегда использует shell, а execvp() нет.
execve() умеет выполнять только скрипты, execvp() – бинарники.
execve() автоматически проверяет формат входных данных, execvp() – нет.
Что означает фраза «don’t mix code and data» в контексте вызова внешних команд?
Не разделять имя команды (код) и аргументы (данные), хранить исходный код и данные в одном бинарнике.
Загружать данные в раздел кода памяти.
Не формировать командную строку, передаваемую shell, чтобы пользовательские данные не исполнялись как код.
Ставить execute-бит на все файлы данных.
Запускать данные как скрипт, не разделяя имя команды (код) и аргументы (данные).
Почему использование system() в setuid-программах опасно?
Потому что system() требует сетевого соединения.
Потому что system() автоматически удаляет переменные.
Потому что system() всегда запускает root-процесс.
Потому что system() вызывает shell.
Потому что system() не поддерживает execve.
Что содержит переменная LD_PRELOAD?
Настройки swap-памяти.
Параметры, которые необходимы для запуска bash перед программой.
Путь к домашнему каталогу.
Список общих библиотек.
Параметры, которые необходимо заменить для locale.
Какова роль переменной окружения при экспорте функции в bash?
Экспорт функции шифрует содержимое функции RSA-ключом.
Экспорт функции превращает её текстовое определение в строку NAME=() { ... } в окружении, которую дочерний bash распознает.
Экспорт функции создаёт бинарный файл в /var/tmp, который затем дочерний bash распознает.
Экспорт функции переводит её в систему systemd unit.
Экспорт функции отключает другие переменные окружения, что позволяет запускать пользовательские приложения.
Почему ASLR усложняет эксплуатацию стекового переполнения?
Потому что отключает вывод ошибок, делая предсказание адреса shellcode ненадёжным.
Потому что запрещает использование execve() и таким образом усложняет эксплуатацию стекового переполнения.
Потому что рандомизирует базовые адреса (стек, heap, библиотеки), делая предсказание адреса shellcode ненадёжным.
Потому что увеличивает размер стека в два раза и рандомизирует адреса ASLR.
Потому что меняет кодовую страницу на read-only.
Как работает stack canary (Stack-Guard) для обнаружения переполнения?
Перенаправляет все входы в /dev/null.
Увеличивает приоритет процесса при детектировании переполнения и рандомизирует базовые адреса (стек, heap, библиотеки), делая предсказание адреса shellcode ненадёжным.
Вставляет специальное значение перед return address и проверяет его целостность после возврата; если изменено – аварийный выход.
Записывает журнал всех операций memcpy().
Блокирует system() вызовы stack canary (Stack-Guard) для обнаружения переполнения.
Какое небольшое изменение помогает убедиться, что system() вернётся в exit() вместо краха?
Поместить адрес exit() в слот fake-return (epr+4), чтобы процесс корректно завершился.
Перезаписать GOT system() на exit(), чтобы процесс корректно завершился.
Очистить регистры перед возвратом, а затем записать адреса system() и exit().
Поместить jmp на ebp+12.
Изменить права файлов system и exit.
В лабораторной задаче «CSRF Attack using GET Requests», что обычно нужно сделать, чтобы проэксплуатировать уязвимость?
Очистить локальный кэш браузера жертвы
Установить расширение для обхода SameSite
Перехватить SSH-сессию администратора
Отправить корректный GET-запрос с подставленными параметрами к уязвимым
Почему некоторые операции на сервере не рекомендуется делать через GET?
Потому что GET не работает через HTTPS
Потому что GET не поддерживает cookies
Потому что GET не показывает статус ответа
Потому что параметры URL могут быть случайно вызваны внешними ссылками
