STRCMP PHP УЯЗВИМОСТИ
Функция strcmp в PHP используется для сравнения двух строк. Однако, несмотря на популярность функции, она может стать причиной уязвимостей в приложении, особенно если не используется безопасное и правильное сравнение строк.
Одна из распространенных уязвимостей связана с особенностями работы функции в PHP и типом данных, с которыми она работает.
$str1 = "100";
$str2 = "1e2";
if (strcmp($str1, $str2) == 0) {
//do something
}
В приведенном выше коде, сравнение будет возвращать true, хотя строки различаются. Это происходит из-за того, что функция сравнения использует тип данных integer и воспринимает строку "1e2" как число 100.
В результате, при использовании strcmp необходимо следить за типами данных и приводить их к соответствующему типу перед сравнением строк. Также можно использовать более безопасную функцию сравнения строк - hash_equals().
Лучший сканер уязвимостей? OWASP ZAP. Как пользоваться?
Bypassing strcmp() pada PHP Comparison - PUCC CTF
Как тестировать сайт? - Уязвимости сайтов - XSS атака - 18+
PHP strcmp Bypass (ABCTF2016 – L33t H4xx0r)
10. Как через strcmp обойти авторизацию.
Поиск уязвимостей веб-сайтов руками и сканерами