Files
2026-09-17 00:50:07 +03:00

2.1 KiB
Raw Permalink Blame History

SortKey Station

PWN easy

Складская станция сортирует этикетки и поддерживает старый формат ключей +POS.C. В ELF sortkey-station находим приведение позиции к знаковому 16-битному числу. Большая положительная позиция после него превращается в отрицательное смещение.

Решение

При проверке старого ключа сервис обращается к key_buf + (int16_t)pos и сравнивает строку по этому адресу с SORT-EXPORT. Если подобрать pos, чтение уйдёт перед началом ключа — в профиль партии, содержимое которого можно задать.

Нужная область находится за 32 байта до key_buf. В 16-битной арифметике:

65504 - 65536 = -32.

Значит, подходит ключ +65504.0. Теперь размещаем строку допуска в профиле:

profile = b"A" * 64 + b"SORT-EXPORT"
legacy_key = b"+65504.0"

Строка допуска начинается после 64 байт заполнения в профиле, по смещению -32 от начала key_buf.

В 1) set batch profile отправляем профиль, затем в 2) set legacy sort key задаём +65504.0. Вызываем 3) dry-run sort, чтобы сервис проверил допуск, и забираем результат через 4) export station batch.

Проверка читает SORT-EXPORT из подставленного профиля и принимает его за разрешение на экспорт. В ответе получаем флаг.

Солвер.

Флаг

caplag{legacy_sort_pointer_found_the_batch_grant}