svg xss на примере vk.com

Discussion in 'Video.Antichat' started by e17, 5 Apr 2014.

  1. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Как мы все знаем svg графика основана на xml.
    Xml в свою очередь потдерживает исполнение JS.

    Считаю сегодняшний день пиком svg xss уязвимостей.
    Для эксплуатации требуется всего 2 условия:

    1) сработает только на html5 и svg поддерживаемых браузерах.
    2) для отработки нужна активация элемента svg.

    На сегодня 98% пользователей выбирают ie/chrome/ff/opera/ safari, которые удовлетворяют условиям.

    Для многих оказалось загадкой каким образом я получил вывод алерта и редирект (http://forum.antichat.ru/showpost.php?p=3700973&postcount=482) на сайте vk, по этому снял мини видео с техническими деталями особенности эксплуотации именно этой уязвимости.

    Svg в iOS выполняется а не скачивается, далее все зависит от ваших познаний в JS.

    Видео: http://video.yandex.ru/users/doe-joe2015/view/3/


    Эксплоит: https://www.dropbox.com/s/jayntht5k42dap5/2.svg.zip
     
    #1 e17, 5 Apr 2014
    Last edited: 5 Apr 2014
  2. UXOR

    UXOR Member

    Joined:
    16 Aug 2013
    Messages:
    44
    Likes Received:
    7
    Reputations:
    6
    Поясни данное предложение, пожалуйста. Почему так происходит?
     
  3. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    В данном случае это уязвимость iOS и ее закрытости, в часности ошибка что все приложения для iOS построенные на базе cocoa(sysapi) + webkit(render html) .
    На примере dropbox:

    [​IMG]
    яндекс:
    [​IMG]
    Мэйл:
    [​IMG]
    etc...
    Таким образом уязвимы все ресурсы позваляющие скачивать не исполняя svg для пользователей iPhone/iPad/iPod, это уже часность второго пункта из первого поста, тема призвана показать практический вектор внедрения Js в svg.
     
    #3 e17, 5 Apr 2014
    Last edited: 6 Apr 2014
    1 person likes this.
  4. Alexandr II

    Alexandr II -=ImperatoR=-

    Joined:
    28 Dec 2007
    Messages:
    1,069
    Likes Received:
    671
    Reputations:
    87
    качество видео конечно не ахти, особенно его продолжительность
     
  5. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Я думал о том что-бы развернуть его, но технически alert(document.cookie) или ссылку на ТДС вставить может каждый, по тому решил не тратить Ваше время этим как и перечислением уязвимых ресурсов.
    Хотя соглашусь можно было написать код массового вступления и рассылки нашей картинки по друзьям в том-же ВК.

    в продолжении темы, google и обычный браузер:
    [​IMG]
     
    #5 e17, 6 Apr 2014
    Last edited by a moderator: 7 Apr 2014
  6. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Судя по отсутсвию критики, никто даже не вникал в то, что показано на видео. Проблема достаточно серьезная, но все же преувеличена и примеры не совсем корректны. Большинство крупных ресурсов давно закрыли возможность загрузки файлов на основной домен, поэтому:
    не ВК, а *.vk.me
    не dropbox, а dl.dropboxusercontent.com
    не Яндекс, а *.disk.yandex.ru
    не МейлРу, а *.datacloudmail.ru
    не Гугл, а *.googlecontent.com

    XSS выполняются в контексте других доменов и сами по себе не несут угрозы. Хотя в случае с Янексом используется поддомен основного домена, поэтому при определенных условиях (а эти условия на Яндексе есть) можно выполнить код в контексте yandex.ru (https://forum.antichat.ru/thread312298.html)

    Кстати, это не пассивки, а активки (в смысле stored XSS).

    Браузеры под iOS игнорируют "Content-Disposition"?
     
    1 person likes this.
  7. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Content-Disposition: attachment

    Происходит противоречие именно из-за него.

    Вообще загрузка совеобразна, данные из фаил сначало подгружаются в .plist.
    Нашел фишку, можно вставлять html в .svg , через протакол "data:" обходит ограничения на "<>" за счет встроеного base64.

    http://ru.wikipedia.org/wiki/Data:_URL
     
    #7 e17, 9 Apr 2014
    Last edited: 9 Apr 2014
    1 person likes this.
  8. Zen1T21

    Zen1T21 Member

    Joined:
    13 Jan 2013
    Messages:
    158
    Likes Received:
    37
    Reputations:
    2
    Ну а так-то старье http://habrahabr.ru/company/dsec/blog/202784/
     
  9. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Спасибо за ссылку, изучу.