← Все комнаты Путь «Первые шаги» →Путь «Защита (код)» →
НовичокЗащита (код) Код Осенний CTF

Валидный IPv4

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Строго валидировать IP-адреса.

Напишите is_valid_ipv4(s): четыре числа 0–255 через точку, без ведущих нулей (кроме самого 0), без пробелов и знаков.

Задание 2Теория и инструменты

Разные библиотеки понимают 010.0.0.1 по-разному: как десятичное 10 или восьмеричное 8. Это используют для обхода SSRF-фильтров.

Строгий формат: ровно 4 десятичных числа без ведущих нулей.

Инструменты

  • Python 3 или Node.js
  • Встроенные тесты в редакторе

Больше теории — в разделе «Обучение: Защита (код)».

Задание 3Практика: напишите код

Примеры

Пример 1
is_valid_ipv4("192.168.0.1")
→ true
Пример 2
is_valid_ipv4("255.255.255.255")
→ true

Ещё 10 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Разбейте строку по точке, частей должно быть 4.

Подсказки — каждая до решения стоит −10 очков

Задание 4Как защититься

Используйте строгие парсеры (ipaddress в Python) и проверяйте адрес после разрешения DNS.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.