Добавляем защиту - добавляем "дыру"

Добавляем защиту - добавляем "дыру"
Забавная новость: Новая защита Wi-Fi-роутеров D-Link оказалась брешью в безопасности Не успела компания D-Link анонсировать обновленное микропрограммное обеспечение для беспроводных роутеров с функцией защиты от автоматических регистраций (CAPTCHA), как сразу несколько энтузиастов обнаружили, что новая мера защиты делает владельца такого роутера еще более уязвимым для похищения паролей доступа. http://www.securitylab.ru/news/379779.php Детали тут: http://www.sourcesec.com/2009/05/12/d-link-captcha-partially-broken/ На форуме SecurityLab уже успели отметится товарищи с заявлениями типа: Я не понял, опять взлом метода ввода дефолтного пароля? На самом деле, ситуация гораздо забавнее. Дело в том, что CAPTCHA была задействована D-link для защиты от Cross-Site Request Forgery (CSRF), которую (точнее метод её эксплуатации на роутере) Symantec громко назвал Drive-by Pharming . Но ошибка реализации, а именно прием запросов с "правильным" хэшем без значений CAPTCHA делает эту защиту уязвимостью. В случае со стандартными паролями и так существовал трюк обхода Basic-аутентификации, используя Javscript (см. "Пробиваем периметр" http://www.securitylab.ru/analytics/292473.php ). Но если пароль (или его производная, такая как хэш) передается в GET (в качестве дублирования Basic), то ситуация становится еще интересней - злоумышленник может использовать не только хэщ стандартного пароля, но реализовать на Javascript подбор пароля пользователя с использованием CSRF, от которой CAPTCHA была призвана защищать. Т.е. эта уязвимость распространяется не только на стандартные пароли, но и может повысить эффективность подбора паролей пользователей с использованием CSRF, причем стандартные механизмы парольной защиты (таймауты, временная блокировка и т.д.) работать не будут, поскольку идет не собственно подбор, а попытки соединения с различными значениями "как бы" нормального хэша пароля, используемого вместо идентификатора сессии. Для этого достаточно написать элементарный скрипт, обращающийся по адресу GET /post_login.xml?hash= и проверяющий "успешность" входа. Главное - заставить человека зайти на нужную страницу :) В общем, достаточно интересная ошибка проектирования механизма аутентификации Web-приложения.
vulners Pentest Web
Alt text

Цифровые следы - ваша слабость, и хакеры это знают.

Подпишитесь и узнайте, как их замести!