Пользователь
0,0
рейтинг
18 января 2012 в 18:44

Разработка → Пассивная XSS в Яндекс.Деньгах

Яндекс, Деньги, два ствола XSS



История такая. На одном сайте увидел новость о том, что обновился сайт Мистера Фримена, решил заценить.

Зашёл на него и увидел там поле пожертвований Яндекс.Денег. По старой привычке бывалого скриптикидди вставил туда нетленные
[script]alert("")[/script] и нажал отправить:

image

Меня перенесло на Яндекс.Деньги, и передо мной предстала такая картина:

image

«Клёво!» — подумал я, и создал на Хабре вот этот вопрос. Потом написал в службу поддержки Яндекс.Денег и одному хабраюзеру, имеющему отношение к Яндексу.

Ну и решил дальше продолжить разбираться с этой оказией.

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

Кстати в это время я получил ответ от суппорта Яндекса, примерно такого содержания: «Всё в порядке, я только что проверил в ФаерФоксе, никаких косяков нет».

«Клёво!» — подумал я снова, и выполнил закодированный скрипт, который выдавал мои куки:

image

После этого отправил ещё одно письмо суппорту со скриншотами трёх-браузеров, где выполняется алерт.

Потом зарегился в сниффере, закодировал скрипт, скрипт выполнился — куки пришли.
И примерно через полчаса уязвимость прикрыли. Суппорт мне пока ничего не ответил.

Такие дела.

UPD: Получил письмо от суппорта с подтверждением о исправлении уязвимости.
@chelovekdimka
карма
36,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (33)

  • +2
    Ну по такому описанию сложно сделать выводы. Я не совсем понял в какой момент отрабатывает скрипт. После нажатия кнопки «Перевести»? (у меня просто нету яндекс-аккаунта, а здесь после повторения Ваших операций требуется авторизация).

    Но могу предположить следующее. Если поле «К оплате» может воспринимать данные из GET/POST запросов, то можно использовать это против других пользователей.
  • –37
    Пипец у Вас cookie грязые. Вы их не моете что ли? о_О
    • –4
      тут плоский юмор не проходит
      • +15
        Ох уж эти грязные, похотливые куки.
  • +2
    Спасибо хоть сказали?
    • +6
      Да, но сказали, что было бы ещё лучше, еслиб я не постил эту историю на Хабре. Из-за того, что это может привлечь к поиску уязвимостей таких же скриптикиддисов как я и они совершат какое-нибудь непотребство.
      • +4
        Серьёзно? Вам такое Яндекс написал?
        Наверное, это был какой-то далёкий от разработки человек…
        • +3
          Не совсем в той форме, что я написал — но суть такая.
          • +16
            Нехорошо, что на Хабре опубликовали? А то, что они там штаны просиживают и даром хлеб едят, допуская такие вот ошибки — это по ихнему хорошо?

            А Вы сделайте скриншот этого письма представителя Яндекса (с его ФИО и должностью как он там подписался) и приаттачте к статье. Может, кто из представителей Яндекса это увидит и проведут с ним разъяснительные мероприятия. И тогда он перестанет пальчики свои растопыривать. Можно даже в тегах к статье указать его ФИО, если совсем уж не жалко дяденьку :)
            • +7
              Это не мои методы.
              Случайно нашёл уязвимость, рассказал о ней, ещё и пост на Хабр написал — столько поводов для гордости. Тем более в своём первом запросе в суппорт, я спросил из вежливости могу ли я опубликовать пост про это. Видимо суппорт почуял мою слабость и решил выжать из этого максимум профита.
              Уязвимость закрыта, меня полагодарили, пост на главной Хабра — о чём ещё можно мечтать? :)
              • +2
                1 000 000$?
                • +2
                  $5000, за победу в недавнем конкурсе поиска уязвимостей от Яндекса))
                • +2
                  А ещё лучше найти девушку, и раоту какую-нибудь
            • +1
              Текущий мир очень сложный. Вы можете не допустить своих ошибок, но анализировать весь код и все изменения своих партнеров или просто людей чей код вы тянете на свой сайт, в принципе возможно, но цена будет огромная, и ваш проект не выдержит конкуренции.

              Позиция не привлекать лишнего внимания, она, в целом правильная и не надо говорить людям что они даром хлеб едят. В яндексе не такие большие зарплаты, и те кто работает там, действительно любят свою работу и хотят ее делать хорошо.

              И да, я никогда не работал в яндексе, на данный момент не собираюсь там работать (у меня нет предложений о работе или контракте с яндексом) и я не владею в данный момент их акциями (владел, признаюсь, но сугубо в спекулятивных целях).
  • НЛО прилетело и опубликовало эту надпись здесь
  • +3
    Саппорт из-за особенности мозиллы не смогли просмотреть XSS, просто alert() не даст эффекта, а вот alert(«Habrahabr»); уже сделает что ему положенно :)
  • +1
    Вообще было бы здорово видео демонстрацию глянуть. Хоть уже и пофиксили и не судьба. Намного упрощает восприятие. Могу порекомендовать для таких целей программку UVScreenCamera.
    При должном подходе видео получается очень наглядным и ясным. Для примера можете глянуть видео в этих постах: один, два.

    Сохранение с эффектами (наложение текста и всё остальное что там есть) возможно в формат .flv (его поддерживает youtube). Бесплатная версия программы этого не позволяет
    • 0
      Согласен, пост несколько корявый. Я до этого ничего подобного не обнаруживал и не писал, опыта багрепорта не имею.
      Если вдруг случится, что я когда-нибудь, где-нибудь обнаружу что-то ещё — воспользуюсь вашим советом.
      Могу разве что-то поподробнее написать про кодирование в URL, и добавить запросы, которые юзал.
    • 0
      А вот такая же, только опен сорсная и бесплатная, есть?
      • 0
        Camstudio, Screenspresso
        • 0
          Да, но такой красивой редакции видео (наложения эффектов) в этих прогах не получится. В Camstudio точно.
  • –13
    Не то, чтобы я не верю автору поста, но есть ли доказательства, что история не вымышлена?
    • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Интересно, какого рода доказательства вас устроили бы?
  • +2
    По Вашему примеру вспомнил 1 url, проверил — работает. Правда просто JS окно, дальше я хз что. Думаю написать в Яндекс, а еще думаю что просто JS окно наверно хрень и меня пошлют. Вот пишу я javascript: alert('xss') и он работает, стоит им писать?
    • 0
      Стоит, наверное, может и не опасно, но лишняя бдительность не повредит)
      • 0
        Написал уже.
        • 0
          Ответили что-нибудь вам? Могу передать информацию в саппорт Денег, но они обычно номер тикета просят.
          • 0
            Я в обычный саппорт написал, думаю там и исправят. Не ответили. Я здесь новичек, не могу в ЛС писать людям, не выйдет.
            • 0
              Можете на kroops@ya.ru отправить.
  • 0
    Уж сколько раз твердили миру, Яндекс и ЯндексДеньги две разные организации.
    Кое-что общее меж ними конечно есть, но…
    • +1
      Прям таки разные организации? Другой отдел, другое юр. лицо. Программисты менее общительные и у девушек каблуки повыше.
      • 0
        Некоторые из них сидят на нашем этаже прямо напротив нас.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.