Сегодня столкнулся с проблемой: кто-то изменил пароль администратора к телефону. Почитав в сети информацию, сделал вывод, чтобы:
- Изменить пароль администратора, нужен пароль администратора;
- Сбросить телефон в заводские настройки, нужен пароль администратора;
- Перепрошить телефон — вновь нужен тот отсутствующий пароль...
Как же найти выход из сложившейся ситуации? Да легко!
Для «узнавания» пароля мной был использован самый обычный браузер Google Chrome с установленным компонентов Furebug, плюс, другой телефон Grandstream GXP2124, доступ к которому у меня есть.
Дальше ход действий был следующий:
Запускаем браузер и включаем утилиту Firebug, после чего начинаем «гулять» по различным страницам. В списке запросов был обнаружен:
POST cgi-bin/api.values.get
а в теле ответа числится:
{«response»:«success», «body»:{«vendor_fullname»:«Grandstream Networks, Inc.»}}
Листая дальше, нашел и такой запрос:
POST cgi-bin/api-phone_operation
в запросе которого были переданы параметры:
cmd=extend&arg=&sid=639534b3e5a
Что же дальше? А дальше перехожу в настройки безопасности и изменяю пароль на телефоне, доступ к которому у меня уже есть и смотрю список ответов:
POST cgi-bin/api.values.post
Source:
P2=MyNewPass&:confirmAdminPwd=MyNewPass&sid=639534b3e5a
где:
- P2 — переданный пароль администратора;
- confirmAdminPwd — подтверждение пароля администратора;
- sid — текущая сессия (нам не пригодится).
Дальше, проявив фантазию, составляем запрос вида:
где 192.168.1.253 — IP-адрес телефона.
Отправляем и…
… и получаем JSON-ответ вида:
{«response»:«success», «body»:{«P2»: «adminPass»}}
где adminPass — текущий пароль администратора.
Profit!
С уважением, Andrey Helldar!
Автор: Helldar
Интересная статья, но как быть если на запрос приходит ответ вида: {“response”:”success”, “body”:{“P2″:””}}
и пароль не пустой(