Маловероятный, но возможный обход авторизации в Opera 12.02, Zyxel KEENETIC-V1.00[BFW.4.4]D0

По просьбе 090h на днях проверял, отключается ли WPS в Zyxel Keenetic. На прошивке из названия отключается. После выхода из админки устройства, решил посмотреть, смогу ли выполнить какое-нибудь действие. Сначала ожидаемо получил отлуп с ошибкой, потом все-таки получилось. Первое, что пришло в голову — это какой-то глюк с кэшем, но нет — роутер перезагружался, а вход в админку после разлогина стабильно воспроизводился.

Оказалось, что это стечение обстоятельств — поведение Opera и реализации авторизации в Keenetic. Да, на практике такое бесполезно, т.к. получить локальный доступ к браузеру, в котором был залогинен админ, малореально, но сам факт показался довольно забавным. С другой стороны, чисто в теории, если допустить, что там нет проверки от CSRF, можно, например, ребутать роутер :D

Репорт в Zyxel:

По непонятной причине после нажатия на кнопку «выход» в админ-панели zyxel keenetic с прошивкой KEENETIC-V1.00[BFW.4.4]D0 все равно можно попасть в админ-панель, если не закрывать браузер, при запросе авторизации браузером нажать в опере «отмена», а потом в адресной строке обратиться к устройству.

Можно получать страницы админ-панели, перезагружать устройство. Воспроизводится стабильно.

Ответ Zyxel:

Разработчики ответили, что Opera кеширует хеши авторизации. По-нормальному, она должна их забывать после разрыва сессии. Поэтому сделать они ничего не могут.
В Keenetic используется Digest access authentication. И не полная реализация. Параметр nonce не меняется. Это и позволяет хранить авторизацию. Т.е. Опера на ответ сервера 403(требуется авторизация), не спрашивая пользователя, сразу пробует сохранённые хеши. Или вообще делает обращение сразу с правильным «Authorization: Digest …» в заголовке.

Ответ Opera:

Hi,

Thanks for your report. We are not entirely certain what is going on here, but here is our understanding:

User logs in with http authentication (digest)
User clicks logout
Server responds with a 403, possibly some more in some combination
At this point, other browsers respond with purging the credentials cache
User loads another page
At this point, Opera continues using the cached credentials, while other browsers are forced to ask the user for credentials again

My Russian is not too strong, and auto-translate doesn’t work with a screenshot, if you could include your previous conversation in plain text, that would be helpful.

Note that if the above understanding is correct, there is no security issue in Opera. The router is using digest authentication in a peculiar manner and relying on non-standard caching behaviour, but depending on the intended protection, this is not necessarily a security issue in the router either. This behaviour is more secure than most routers, even in Opera, as the password is never relied in plain text, and does not perform worse than average in any respect.

Unless we get other indications, we will therefore be treating this as a regular bug (not a security issue), regarding cached credentials compatibility with other browsers. We would still like to understand exactly what is going on, and would be grateful if you could help us understand this. A log of what is passed across the network, from the point of clicking «logout» to the point of seeing a logged in page again, would be useful. Would you be able to provide us with this? Tools like WireShark or Fiddler will allow you to record and save the network data.

Запись опубликована в рубрике Web Application Security, Браузеры с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *