Недавно закончился очередной NeoQuest.
Под катом разбор третьего задания, относящегося к поиску web-уязвимостей и немножко фишингу. Интересно, как обмануть Telegram бота и заставить его поделиться ключом? Тогда добро пожаловать под кат.
Текст задания содержит ссылку на Telegram бота (которого почему-то назвали каналом).
Бот нам сообщает, что любит тусоваться на этом сайте. Поглядим, что там:
Нужен логин и пароль. Вероятно узнав их, удастся раздобыть ключ. Вернемся к боту, попробуем с ним поболтать.
На команды типа /start или /help бот не реагирует, на медиа (картинки, видео, аудио) тоже.
На текстовые сообщения отвечает рандомным ответом из списка.
Зато на ссылки всегда отвечает одинаково:
И это подозрительно. Пробуем отправить ссылку на ОлимпИю и получаем другой интересный ответ:
Задержка во времени между первым и вторым ответом наводит на мысль, что бот пытается по этой ссылке сходить. Значит все что нам надо — попытаться заставить сходить бота по нашей ссылке так, чтобы он считал что это ссылка на ОлимпИю.
Изучим ОлимпИю поподробнее. Попробуем открыть какой-нибудь другой раздел, например 213.170.100.214/messages. Происходит редирект на 213.170.100.214/login?next=messages. Ага! Редирект! То что нам нужно для формирования фишинговой ссылки.
Дальше нам понадобится какой-нибудь хостинг, на котором будет размещена наша фишинговая ОлимпИя. Такой у меня был, поэтому оставалось только сделать страницу, которая просто сохраняет все параметры запроса в файл.
<?
file_put_contents('request.txt', print_r($_REQUEST, true));
?>
Пробуем в лоб:
И вроде бы боту понравилось, но по факту запрос на сервер не приходит. Вероятно это из-за http в начале. Тогда не будем указывать протокол:
Вот оно, мы продвинулись. Бот действительно посетил страницу, запись в request.txt появилась, правда пустая, потому что наша фишинговая страница ему не понравилась.
Движемся дальше, вместо пустой страницы будем отдавать ему тот же html, что и оригинальный сайт ОлимпИи:
Умный бот, страница без стилей ему видите ли кажется подозрительной. Ну нам не жалко, зальем файлы картинки и стиля. Теперь наш фишинговый сайт визуально идентичен ОлимпИи. Может теперь получится?
И вроде бы бот ничего не интересного ответил, но заглянем ка в файл, сохраняющий параметры запроса, а там:
Array
(
[username] => godmom
[password] => ed_ax3kWbdn3pjje5V5
)
Остается только залогиниться в ОлимпИи и получить заветный ключ