Райтап на задачу «Brute_force.pdf»

web

Автор:

web

1 ноября 2026

13

01.11.2026
Brute_force.pdf
Категория:

Misc

Задача «Brute_force.pdf»

Автор:

LastTeamLead

Первая кровь:
Fire-K
Сложность:
easy
Дата публикации:
25.04.2026
Решений:
39
Рейтинг:
5/5
Ссылка:
Решать

Как решить?

Тут понадобятся гугл, код, файл и терпение.

Нам дали PDF-файл, запароленный на вход, и подсказку: пароль — это дата выхода популярной песни, записанная в формате dd.mm.YYYY.

Первое, что приходит в голову — какая вообще песня считается «популярной» настолько, чтобы её знал каждый? И тут, конечно, вспоминается главный мем-трек интернета — та самая песня, на которую все рано или поздно «попадались» по ссылке. Ну вы поняли, о чём я, дыа? ;)

Гуглим дату её выхода — и находим точный день, месяц и год релиза. Переводим в формат dd.mm.YYYY, как и просили в условии.

Дальше остаётся самое простое — подставить получившуюся дату в качестве пароля к файлу. Но давайте представим, что мы не знаем, что это за дата, ведь кто его знает, может, подставили совсем другую песню?

Можно открыть PDF вручную в любом просмотрщике и ввести пароль напрямую, а можно (раз уж задача называется Brute_force) оформить это как маленький скрипт перебора по списку кандидатов — файл будет прикреплён чуть ниже:

Python-скрипт перебора дат для открытия PDF
import pikepdf

with open("song_release_dates.txt", "r", encoding="utf-8") as f:
    candidates = [line.strip() for line in f if line.strip()]
for pw in candidates:
    try:
        with pikepdf.open("Brute_force.pdf", password=pw) as pdf:
            print(pw)
            break
    except pikepdf.PasswordError:
        continue

После выполнения программы мы увидим в выводе пароль, откроем наконец-таки этот PDF и увидим там это:

Открытый PDF с флагом

Все молодцы! Флаг получен, ввели и получили заветные очки (не солнцезащитные).

Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you…

Если вы нашли опечатку или ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter

Также по теме:

Райтап на задачу «Бесконечность»

/Разборы задач

Райтап на задачу «Бесконечность»

Получаем Infinity в JavaScript без букв и цифр с помощью JSFuck.
Прочитать

23

Райтап на задачу «Точность+»

/Разборы задач

Райтап на задачу «Точность+»

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

15