
Type Jug
Type Juggling: ошибочная интерпретация strcmp()
На PHP 8.2 эндпоинт /promo приводит ввод к строке, но принимает `strcmp(...) < 1`: любой отрицательный результат ошибочно считается совпадением секретного токена.
PHP Pro
Exploit Fix
JSON-API логина сравнивает пароль с хешем через loose == . В БД хранится хеш-строка вида 0e830... (magic hash), которая коэрсится в число 0.0. Отправив {"password": 0}, атакующий заходит как admin.
На PHP 8.2 эндпоинт /promo приводит ввод к строке, но принимает `strcmp(...) < 1`: любой отрицательный результат ошибочно считается совпадением секретного токена.
API-логин через токен использует loose comparison (==) между md5-хэшами. Magic hash вида 0e[0-9]+ интерпретируется как научная нотация (0.0), что приводит к коллизии хэшей и обходу аутентификации.

