
Олимпиада школьного этапа ВсОШ по Информатике (Информационная безопасность) 9 класса задания и ответы: 3 группа, 22 октября 2026. Полный доступ к ответам и разбору всероссийской олимпиады, проходящей на площадке uts.sirius.
Скачать полные задания и ответы
Олимпиада ВсОШ по Информатике (ИБ) 9 класс 3 группа
Задание 1. Кукуцапль
Файлы: 1_9_01-linux, 1_9_01-windows.exe
Жил-был грустный Кукуцапль. Всю свою кукуцаплиную жизнь он мечтал об одном — раздобыть настоящую золотую цапку, ту самую, о которой шепчутся в гнёздах по всей округе. Но золотая цапка стоит целое состояние в зёрнах, а свободных зёрен у Кукуцапля отродясь не водилось. Делать нечего — пошёл он в кукуводы: наниматься на птичий двор и зарабатывать зёрна честным трудом, цапка за цапкой. Помогите Кукуцаплю накопить на мечту и выяснить, что за секрет прячется внутри золотой цапки.
Формат ответа: vsosh{text}.
→Узнать ответ
Задание 2. Мууууу
Файлы: 1_9_02-linux, 1_9_02-windows.exe
Муууууу! Для всех любиииителей мооолока — приглашаем попробооовать наш новый сервис «Муууууу»! Заказывайте мооолочко прямо из браузееера, а шустрый курьееер домчит его прямо к вааам на порожек. Никаких очееередей, никакой суееты — только свееежее, вкусносоое мооолоко! А для самых заядлых любииииителей мооолока у нас припасена оооособая акция. Секреееетный код, который позволяет целый гооод наслаждааться самым млееечным, саааамым мягким и самым вкусным мооолоком! Муууууу — это не просто сервис, это целааая жизнь в удовольствии!
Формат ответа: vsosh{text}.
→Узнать ответ
Задание 3. 256 ключей
Рекомендуемые инструменты: Python
Файл: шифротекст
Разработчик написал собственный алгоритм для защиты секретной информации. Известен исходный код функции шифрования, написанный на языке Python:
1 def encrypt(data: bytes, key: int) -> bytes:
2 result = bytearray()
3
4 for byte in data:
5 result.append(byte ^ key)
6
7 return bytes(result)
Секретная информация была зашифрована этой функцией. В результате получен шифротекст в шестнадцатеричном виде:
35302c302b383b2c311c2a301c302a2e332f263e
Найдите исходную секретную информацию.
Формат ответа: vsosh{text}, где text — осмысленная фраза на английском языке.
→Узнать ответ
Задание 4. Шёпот DNS
Рекомендуемые инструменты: Wireshark
Файлы: 1_9_04-трафик.pcap
После обнаружения подозрительной активности администратор сохранил сетевой трафик одного из компьютеров. Известно, что пользователь передал наружу секретную информацию, но каких-то признаков подключения к внешним серверам обнаружено не было. Найдите эту секретную информацию в представленном сетевом трафике.
Формат ответа: vsosh{text}.
→Узнать ответ
Задание 5. Следы входа
Рекомендуемые инструменты: Wireshark
Файлы: 1_9_05_traffic.pcap
Системный администратор школьной сети заметил несколько обращений к внутреннему веб-сайту. Некоторые пользователи пытались войти в свои учётные записи, а некоторые просто просматривали страницы сайта.
Для выяснения обстоятельств администратор сохранил фрагмент сетевого трафика в файл 1_9_05_traffic.pcap.
Ваша задача — изучить сетевой трафик и восстановить события, связанные с авторизацией пользователей.
Установите соответствие между IP-адресами и пользователями сайта, пытавшимися авторизоваться.
ПОЛЬЗОВАТЕЛИ
Ivan
Maria
Olga
IP-АДРЕСА
192.168.10.11
192.168.10.12
192.168.10.13
192.168.10.14
192.168.10.15
192.168.10.100
Какой пароль был передан при успешном входе пользователя maria?
N7v!kP2q
Tr9#xLm4
V3r!pL8z
Q8#mR4!tZ
Какой пользователь сначала совершил неудачную попытку входа, а затем успешно вошёл в систему?
Злоумышленник получил возможность перехватывать сетевой трафик между компьютерами пользователей и веб-сервером. Анализируя сохранённый PCAP-файл, он смог восстановить логины и пароли пользователей.
Какой протокол необходимо использовать для подключения к веб-серверу, чтобы содержимое передаваемых данных нельзя было прочитать непосредственно из перехваченного трафика? Ответ запишите прописными буквами, например — DNS.
→Узнать ответ
Задание 6. Проблемный веб-сервис
В школьном кружке разработали небольшой веб-сервис для хранения заметок. Сервис умеет искать пользователей, показывать сообщения и скачивать файлы.
Перед запуском сервиса разработчики попросили вас проверить его исходный код. Известно, что некоторые участки программы написаны небезопасно и могут позволить злоумышленнику выполнить действия, которые разработчики не предусмотрели. Вам предоставлен листинг программы, состоящий из нескольких независимых обработчиков запросов.
1 from flask import Flask, request
2 import sqlite3
3 import os
4
5 app = Flask(name)
6
7 @app.route(«/user»)
8 def get_user():
9 user_id = request.args.get(«id»)
10
11 db = sqlite3.connect(«users.db»)
12 query = «SELECT name FROM users WHERE id = » + user_id
13 result = db.execute(query).fetchone()
14 if result:
15 return result[0]
16 return «Пользователь не найден»
17
18 @app.route(«/message»)
19 def show_message():
20 message = request.args.get(«text», «»)
21 if len(message) > 100:
22 return «Сообщение слишком длинное»
23 return «<h2>Сообщение:</h2><p>» + message + «</p>»
24
25 @app.route(«/download»)
26 def download_file():
27 filename = request.args.get(«file», «»)
28 if not filename.endswith(«.txt»):
29 return «Разрешены только TXT-файлы»
30 path = «/srv/files/» + filename
31 with open(path, «rb») as file:
32 return file.read()
33
34 @app.route(«/ping»)
35 def ping():
36 host = request.args.get(«host», «»)
37 if not host:
38 return «Не указан адрес»
39 command = «ping -c 1 » + host
40 return os.popen(command).read()
41
42 @app.route(«/search»)
43 def search():
44 text = request.args.get(«text», «»)
45 db = sqlite3.connect(«users.db»)
46 query = «SELECT name FROM users WHERE name LIKE ?»
47 result = db.execute(query, («%» + text + «%»,)).fetchall()
48 return str(result)
Для каждого блока кода определите, содержит ли он уязвимость. Если уязвимость есть, определите её тип.
Не все функции являются уязвимыми. Для безопасных функций выберите вариант «Уязвимость отсутствует».
ФУНКЦИЯ
download_file()
get_user()
ping()
search()
show_message()
ВАРИАНТЫ
Уязвимость отсутствует
Path Traversal
XSS
SQL Injection
Command Injection
→Узнать ответ
Задание 7. Что сломалось?
В небольшой школьной сети используется следующая схема:
Маршрутизатор должен:
• автоматически выдавать компьютерам IP-адреса по DHCP;
• быть шлюзом для локальной сети;
• предоставлять DNS-сервис для компьютеров сети.
Сеть школы: 192.168.10.0/24
Адрес маршрутизатора: 192.168.10.1
После перезагрузки ПК-01 перестал нормально работать. Администратор проводит диагностику.
На ПК-01 выполнена команда:
C:\> ipconfig /renew
An error occurred while renewing interface Ethernet:
unable to contact your DHCP server.
C:\> ipconfig
Ethernet adapter Ethernet:
IPv4 Address: 169.254.17.82
Subnet Mask: 255.255.0.0
Default Gateway:
Почему компьютер получил адрес 169.254.17.82?
DHCP-сервер выдал компьютеру временный адрес
Компьютер автоматически назначил себе APIPA-адрес, не получив ответ от DHCP
DNS-сервер выдал неправильный IP-адрес
Маршрутизатор автоматически перевёл компьютер в другую подсеть
Определите наиболее вероятные причины этих ситуаций.
СИТУАЦИИ
ping 8.8.8.8 работает, но ping example.com не работает
Компьютер получил IP, но не может выйти за пределы локальной сети
Компьютер получил 169.254.17.82
ПРИЧИНЫ
Проблема с DNS
Неправильный или отсутствующий шлюз
DHCP-сервер недоступен
Администратор проверил настройки маршрутизатора. Какой вариант конфигурации соответствует всем условиям?
1) Network: 192.168.10.0/24
Gateway: 192.168.10.1
Range: 192.168.10.100 — 192.168.10.200
DNS: 192.168.10.1
2) Network: 192.168.10.0/24
Gateway: 192.168.10.254
Range: 192.168.20.100 — 192.168.20.200
DNS: 192.168.10.1
3) Network: 192.168.10.0/24
Gateway: 192.168.10.1
Range: 192.168.10.100 — 192.168.10.200
DNS: 8.8.8.8
4) Network: 192.168.10.0/24
Gateway: 192.168.10.1
Range: 192.168.20.100 — 192.168.20.200
DNS: 192.168.10.1
После исправления конфигурации ПК получил:
IPv4 Address: 192.168.10.115
Администратор выполняет:
C:\> ping 8.8.8.8
Reply from 8.8.8.8: bytes=32 time=24ms TTL=117
Reply from 8.8.8.8: bytes=32 time=23ms TTL=117
C:\> ping example.com
Ping request could not find host example.com.
Какие утверждения верны?
ПК не получил IP-адрес
ПК имеет соединение с Интернетом
Преобразование имени example.com в IP-адрес не работает
DHCP-сервер обязательно снова сломан
Проблема связана с DNS
→Узнать ответ
Задание 8. Не верь глазам
Рекомендуемые инструменты: StegSolve-win10-11.exe, StegSolve-win7-8.1.exe
Файл: 1_9_08_dont-trust-your-eyes.png
Перед вами изображение.
На первый взгляд в нём нет ничего необычного.
Иногда, чтобы увидеть спрятанное, недостаточно смотреть на изображение целиком.
Возможно, стоит взглянуть на него немного иначе.
Найдите скрытое сообщение и запишите его в формате vsosh{text}.
→Узнать ответ
Задание 9. Ненадёжный код
Представленный листинг кода реализует базовый веб-сервер с функцией аутентификации на языке Python. Он содержит одну уязвимость, которую может эксплуатировать злоумышленник.
1 import sqlite3
2 from pathlib import Path
3
4 from flask import Flask, request, g
5
6 app = Flask(name)
7 DATABASE_PATH = Path(file).with_name(«auth.db»)
8
9
10 def init_db():
11 with sqlite3.connect(DATABASE_PATH) as connection:
12 connection.execute(
13 «»»
14 CREATE TABLE IF NOT EXISTS users (
15 id INTEGER PRIMARY KEY AUTOINCREMENT,
16 username TEXT NOT NULL UNIQUE,
17 password TEXT NOT NULL
18 )
19 «»»
20 )
21
22
23 @app.route(«/»)
24 def home():
25 check_auth()
26
27 return «Внимание! Строго конфиденциально. π=3.14»
28
29
30 def check_auth():
31 try:
32 g.is_forbidden = is_invalid_credentials()
33 except Exception as e:
34 raise Exception(«Unknown error», e)
35 finally:
36 if not g.get(«is_forbidden»):
37 return True
38
39 raise Exception(«Invalid credentials»)
40
41
42 def is_invalid_credentials():
43 authorization = request.headers.get(«Authorization», «»).removeprefix(«Basic»).strip()
44
45 if authorization == «»:
46 return True
47
48 [username, password] = authorization.split(» «)
49
50 with sqlite3.connect(DATABASE_PATH) as connection:
51 cursor = connection.execute(
52 «SELECT 1 FROM users WHERE username = ? AND password = ?»,
53 (username, password),
54 )
55
56 return cursor.fetchone() is None
57
58
59 if name == «main«:
60 init_db()
61 app.run(debug=True)
Что позволяет сделать злоумышленнику найденная уязвимость?
Получить список пользователей на сервере
Получить доступ на запись к базе данных
Получить доступ к конфиденциальной информации
Нарушить доступность сервиса
Разместить свой текст на главной странице сервиса
Какой текст должен присутствовать в запросе к серверу для успешной эксплуатации уязвимости?
X-Forwarded-For: 127.0.0.1
Authorization: Basic hehe
maodzedun
`1′; DROP TABLE users’
1′ OR 1 = 1
Как исправить найденную уязвимость?
Сменить язык программирования
Использовать экранирование пользовательского ввода при работе с базой данных
Выключить режим работы за реверс-прокси у фреймворка
Изменить логику обработки исключений
Ограничить количество запросов с IP-адреса за единицу времени
→Узнать ответ
Задание 10. А что скажет пингвин?
Недавно администратор заметил странное поведение сервера и провёл его диагностику. Он выполнил несколько команд и сохранил их результат. Установите соответствие между фрагментами отчёта о диагностике и наиболее вероятными причинами проблем.
А)
$ touch /srv/www/test.txt
touch: cannot touch ‘/srv/www/test.txt’: Permission denied
$ ls -ld /srv/www
drwxr-xr-x 5 root root 4096 Aug 20 12:10 /srv/www ls -lA
Б)
$ systemctl status backup.service
● backup.service — Daily backup
Loaded: loaded (/etc/systemd/system/backup.service; enabled)
Active: failed (Result: exit-code)
Aug 23 02:00:01 server backup.sh[1842]:
tar: /backup/archive.tar: Cannot write: No space left on device
В)
$ curl http://127.0.0.1:8080
Hello!
$ curl http://192.168.1.25:8080
curl: (7) Failed to connect to 192.168.1.25 port 8080
$ ss -lnt
LISTEN 0 128 127.0.0.1:8080 0.0.0.0:*
Г)
$ ping -c 1 1.1.1.1
64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=18.7 ms
$ ping -c 1 example.com
ping: example.com: Temporary failure in name resolution
Д)
$ ./report.sh
bash: ./report.sh: Permission denied
$ ls -l report.sh
-rw-r—r— 1 student student 814 Aug 23 11:42 report.sh
Е)
$ systemctl status nginx
○ nginx.service — A high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: inactive (dead)
ПРИЧИНЫ
Пользователь не имеет права записи в каталог
Отсутствует право на исполнение файла
Веб-сервис принимает подключения только с локального адреса сервера
В файловой системе нет свободного пространства
На сервере отсутствует сетевое подключение
Не работает разрешение доменных имён
Служба веб сервера в данный момент не запущена
Файл повреждён и не может быть прочитан операционной системой
→Узнать ответ