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

Автор:

feadal

31 октября 2026
Точность+
Категория:

Misc

Задача «Точность+»

vanderson

Автор:

vanderson

Первая кровь:
Shun
Сложность:
easy
Дата публикации:
15.11.2025
Решений:
124
Рейтинг:
5/5
Ссылка:
Решать

Райтап на миск «точность+»

Здарова, васькИ! Сегодня разбираем очередной миск, в общем, заходим на сервис и уже видим хYйню:

Интерфейс калькулятора «Точность+»

Ага, понятно, 6лять, видимо опять наё6ывать придётся, ну мы пацаны простые, хYли нам делать.

Заходим в прогу (у меня Caido (ПОЛЬЗУЙТЕСЬ Caido, НЕВЕЖИ)) и начинаем чекать, какие запросы и куда отправляет сервис:

Запрос калькулятора в Caido

Видим, что сервис отправляет POST-запрос на /calculate, ну всё, е6ать, теперь мы знаем, кого конкретно надо наё6ать.

Отправляем эту хYйню в Replay и начинаем шаманить.

Параметры num1 и num2 передаются строками

И вот первый звоночек для наё6ки: числа передаются строками, а не числами. Ну-ну, значит, где-то их будут парсить, а где парсинг — там и наё6.

Ну всё, начинаем др0чить эту залYпу в поисках логики.

Ошибка парсинга JSON при первом эксперименте

ХYй там.

Проверка ограничения числа на сервере

ХYй там.

Поведение числового парсера

Вот первый результат от парсера (отправили мы parseInt)

Стоп, а чё вообще за хYйня? Оба числа должны быть не больше 1000, а среднее нужно БОЛЬШЕ 1000, честными числами хYй так выйдет, два по 1000 дают ровно 1000 и нихYя больше. Значит, надо, чтоб проверка и подсчёт увидели строку по-разному: проверка «не больше 1000» хекс не раскусит и пропустит, а parseInt тут же превратит его в нормальное число. Это и есть type confusion — левая рука не знает, что творит правая, на этом и наё6ываем.

Крч, пробуем е6ануть хекс:

0x3e9 — это 1001 в шестнадцатеричной, как в тех видосах: «е6анет/не е6анет?»

Результат запроса с шестнадцатеричными числами

НИХYЯ СЕБЕ ПОЛУЧИЛОСЬ! Флаг доставайте сами, халявщики хYевы. Всем спасибо!

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

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

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

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

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

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

8

Райтап на задачу «Пазл из 2500 кусочков»

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

Райтап на задачу «Пазл из 2500 кусочков»

Собираем изображение из 2500 пронумерованных фрагментов с помощью ImageMagick и числовой сортировки.
Прочитать

5