Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1) Знакомство с ресурсом.
Первым делом необходимо понять, что за сайт перед нами.
Самописный ли он или же это движок(CMS)?
Какой язык программирования используется?
Что за серверное ПО используется?
Эти и многие другие вопросы нам предстоит решить.
-- Версии ПО
Думаю сначала необходимо заглянуть в исходный код веб-страницы. Если вы в firefox-based браузерах, то нажмите ctrl+u. Разумеется вы должны понимать, что это исходной код не серверной части, а клиентский html,css,javascript - отданный сервером нашему браузеру. Итак, что же там может быть полезного?
Обычно если это известная CMS, можно обнаружить ее версию, если она специально не была скрыта. Этим грешат известные форумы, блоги и тд. Можете нажать ctrl+f и поискать "ver" или "version". Например - wordpress.co.ua
Здесь виден следующий тег "<meta name="generator" content="WordPress 4.5.3"
Также бывают видны версии отдельных плагинов. Это пригодится для нахождения известных уязвимостей.
Не забываем проверить robots.txt. Например -
Это файл предназначенный для просмотра роботами поисковых систем, который однако иногда содержит полезные директории, недоступные в качестве прямых ссылок с сайта.
Можете проверить каждую из этих ссылок на доступ, иногда сервер бывает неправильно сконфигурирован и можно посмотреть файлы из директорий, непредназначенных для чужих глаз.
Также можно глянуть известное ПО, наподобие - /phpmyadmin, /myadmin.
Там может быть web-админка для базы данных.
Если вы ничего подобного не находите, то это значит, что либо админы постарались скрыть факт использования определенной CMS, либо что сайт самописный.
Но конечно можно также определить, что за движок используется по косвенным признакам.
Например, в урлах присутствует wp-content - Wordpress
Имеется /modules/mod_ - Чаще всего Joomla
Определенная страница регистрации - community/ucp.php PhpBB
И так далее. Главное ознакомиться с популярными решениями в веб.
Также можете проверить файл .htaccess Чаще всего он недоступен, но в торе например встречал сайты, на которых его можно было посмотреть. Там могут быть полезные ссылки. Или же sitemap.php, sitemap.xml
Например -
-- Сервер
Далее никогда не помешает узнать побольше информации о самом сервере.
Если ресурс расположен в клирнете, то можно просканировать его с помощью nmap.
nmap -F ip (Узнает основные открытые порты)
Получите нечто вроде такого.
Nmap scan report for duckduckgo.com (46.51.197.89)
Host is up (0.38s latency).
rDNS record for 46.51.197.89: ec2-46-51-197-89.eu-west-1.compute.amazonaws.com
Not shown: 97 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 7.75 seconds
С помощью nmap можно также идентифицировать отдельные версии сервисов или же ОС сервера.
Например:
sudo nmap -O ip
Running (JUST GUESSING): Crestron 2-Series (90%), Netgear embedded (90%), Western Digital embedded (90%), HP embedded (87%), AXIS Linux 2.6.X (87%), Linux 2.6.X|3.X (85%)
OS CPE: cpe:/o:crestron:2_series cpe:/o:axis:linux:2.6 cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
Aggressive OS guesses: Crestron XPanel control system (90%), Netgear DG834G WAP or Western Digital WD TV media player (90%), HP P2000 G3 NAS device (87%), AXIS 210A or 211 Network Camera (Linux 2.6) (87%), Linux 2.6.32 (85%), Linux 3.0 - 3.1 (85%)
No exact OS matches for host (test conditions non-ideal).
OS detection performed. Please report any incorrect results at
Nmap done: 1 IP address (1 host up) scanned in 59.76 seconds
Подробнее здесь -
Это не всегда верная информация, поэтому полностью полагаться на нее не стоит.
Нам нужно узнать, какой программный сервер использует сайт. Чаще всего это либо Nginx, либо Apache.
Иногда это можно увидеть если вбить неправильный урл и при необработке его сайтом, этим займется сервер. Такое бывает чаще всего на самописных сайтах.
Например -
Если вам повезет, там будет также версия. Обычно этим грешит Apache.
Но даже если 404 ошибка обрабатывается сайтом - можно ввести очень длинный урл в строку запроса. Чтобы нам выдало ошибку - 414 Request-URI Too Large
Там иногда может быть версия.
-- Полезные страницы
Бывает полезно знать страницы логина, админку и некоторые другие страницы. Чтобы их отыскать вы можете попробовать перебрать основные известные варианты, либо найти их в коде страницы или же в карте сайта. Для подобных дел можно написать простой скрипт или же использовать готовое решение. Нумитира кстати публиковал на Runion какой-то скрипт на перл.
Может быть также гугл проиндексировал их. Учите запросы гугла site:, inurl:, filetype: и другие
Также можно угадать например в wordpress - wp-admin/, wp-login/ - Например
В xenforo - это admin.php Например
И так далее..
2) Ищем уязвимые места
Разумеется сначала нужно попробовать найти известные уязвимости по той информации, которую мы собрали в предыдущем пункте.
Здесь могут помочь сайты:
Например ищем все эксплоиты по Вордпресс -
Или по конкретным плагинам -
Что делать с найденными эксплоитами будет рассмотрено в следующем разделе.
А пока подумаем, что же делать, если нам неизвестны версии ПО или же это самописный сайт.
Тут друг мой придется потрудиться ручками. Какие же основные уязвимости бывают на сайтах?
-- SQL - Ошибка в запросах баз данных. Вы должны знать, что каждый сайт имеет БД, в которой хранит постоянно какую-то информацию. Это может быть база пользователей, статей и многое другое. Когда мы вводим какой-то урл, сайт обращается к базе и извлекает нам данные в виде понятной для браузера формы - html-разметки
Поступают запросы от юзера обычно двух типов - GET или же POST
Самый простой способ проверить на наличие sql ошибки ввести в параметр кавычку. Или другие заведомо неправильные параметры.
Например -
При POST же запросах попробуйте вбить эту самую кавычку в поля формы.
Подробнее почитайте этот документ от Positive Technologies -
Данная ошибка при правильной эксплуатации позволит извлечь базу данных форума. Для автоматизации используй - sqlmap. Для ручного использования необходимо изучить язык запросов SQL.
-- XSS - Эта ошибка позволяет исполнение скриптов, введенных пользователем.
Проверяется обычно в простом варианте также заполнением параметров запроса данным выражением - <script>alert('xss')</script>
Если вылетит всплывающее сообщение с xss, значит запрос уязвим. Опасна тем, что позволяет украсть определенные данные юзера.
-- CSRF - Запросы от лица юзера. Это уязвимость опасна в случае если сайт имеет возможность логина, но не генерирует для каждой формы специальный csrf-токен.
Тогда возможно создать запрос от лица юзера просто подкинув ему ссылку на веб-страницу на вашем домене. Если сделать автоматом исполняющийся скрипт для отправки запроса при заходе, тогда все будет мгновенно происходить, а юзер может даже и не заметить того.
Например -
В старых версиях Opencart, на котором он сделан в форме смены пароля не надо было вводить пароль. И благодаря этому можно сменить пасс юзера подкинув ему ссылку на подобный html-файл. Сделан для примера. Там до сих пор нет csrf-токенов, но чтобы заюзать данный файл нужно заменить 123456 на ваш пасс, а остальное на новый. Но вполне вероятно, что для других форм, что есть на подобных сайтах данная уязвимость сработает и просто так. Ищите.
<form action="
<div class="content">
<table class="form">
<tbody>
<tr>
<td><input name="old_password" value="123456" type="hidden">
</td>
</tr>
<tr>
<td><input name="password" value="987654321" type="hidden">
</td>
</tr>
<tr>
<td><input name="confirm" value="987654321" type="hidden">
</td>
</tr>
</tbody></table>
</div>
<div class="buttons">
<div class="right"><input value="Continue" class="button" type="submit"></div>
</div>
</form>
Это были основные уязвимости. Существует еще множество других, специфических, например PHP Object Injection, основанная на логике языка PHP или ошибки темплейтов в python - django,flask. Чтобы ими воспользоваться вам необходимо изучить конкретику подробнее.
3) Взлом.
В случае с известными уязвимостями вы можете просто использовать готовые эксплойты. В этом нет ничего сложного. Просто чаще всего они публикуются на англ языке. Внимательно вчитывайтесь в описание и восполняйте недостаток знаний путем гугления незнакомых терминов или техник.
Например -
Здесь речь идет о xss-уязвимости для YaBB, просто подставляем в урл в конец необходимый скрипт. Чтобы этот скрипт принес какую-то пользу ищем, как с помощью javascript компрометировать пользователей или же можете воспользоться xss-фреймворком Beef, который позволяет легко в web-интерфейсе управлять зомби-машинами юзеров.
Также если вы хотите потренироваться на конкретном эксплойте, против заведомо уязвимых сайтов, то читаем такое
Google Dork :
#+ inurl:YaBB.pl?num=
#+ "Powered by YaBB 2.5"
#+ "Powered by YaBB 2.6.11"
Гугл дорк - это то, что необходимо вбить в гугле, чтобы найти уязвимые для данного эксплойта сайты. Все банально просто.
Иногда возможен грубых перебор силой, т.е брутфорс админки сайта или страницы логина. Также в некоторых случаях помогает Социальная Инженерия, но все-таки это больше взлом конкретного человека, а не веб-сайта.
В случае с самописными сайтами вам необходимо пополнить багаж знаний. Чтобы взломать сайт надо минимум также хорошо, как админ понимать, как он работает. Максимум - гораздо больше. Узнаем язык и изучаем. Чаще всего сайты пишутся на php.
Изучаем кратко html,javascript. Читаем информацию о xss,sql,csrf. Понимаем get,post запросы. Пишем простой сайт с нуля, чтобы понимать стандартную структуру.
Изучаем Линукс, чтобы знать на каком серверном ПО хостится сайт и как настраивается сервер.
Учимся программировать на скриптовом языке для понимания эксплойтов или написания простых своих. Для этого подойдет python,perl.
Первым делом необходимо понять, что за сайт перед нами.
Самописный ли он или же это движок(CMS)?
Какой язык программирования используется?
Что за серверное ПО используется?
Эти и многие другие вопросы нам предстоит решить.
-- Версии ПО
Думаю сначала необходимо заглянуть в исходный код веб-страницы. Если вы в firefox-based браузерах, то нажмите ctrl+u. Разумеется вы должны понимать, что это исходной код не серверной части, а клиентский html,css,javascript - отданный сервером нашему браузеру. Итак, что же там может быть полезного?
Обычно если это известная CMS, можно обнаружить ее версию, если она специально не была скрыта. Этим грешат известные форумы, блоги и тд. Можете нажать ctrl+f и поискать "ver" или "version". Например - wordpress.co.ua
Здесь виден следующий тег "<meta name="generator" content="WordPress 4.5.3"
Также бывают видны версии отдельных плагинов. Это пригодится для нахождения известных уязвимостей.
Не забываем проверить robots.txt. Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Это файл предназначенный для просмотра роботами поисковых систем, который однако иногда содержит полезные директории, недоступные в качестве прямых ссылок с сайта.
Можете проверить каждую из этих ссылок на доступ, иногда сервер бывает неправильно сконфигурирован и можно посмотреть файлы из директорий, непредназначенных для чужих глаз.
Также можно глянуть известное ПО, наподобие - /phpmyadmin, /myadmin.
Там может быть web-админка для базы данных.
Если вы ничего подобного не находите, то это значит, что либо админы постарались скрыть факт использования определенной CMS, либо что сайт самописный.
Но конечно можно также определить, что за движок используется по косвенным признакам.
Например, в урлах присутствует wp-content - Wordpress
Имеется /modules/mod_ - Чаще всего Joomla
Определенная страница регистрации - community/ucp.php PhpBB
И так далее. Главное ознакомиться с популярными решениями в веб.
Также можете проверить файл .htaccess Чаще всего он недоступен, но в торе например встречал сайты, на которых его можно было посмотреть. Там могут быть полезные ссылки. Или же sitemap.php, sitemap.xml
Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
-- Сервер
Далее никогда не помешает узнать побольше информации о самом сервере.
Если ресурс расположен в клирнете, то можно просканировать его с помощью nmap.
nmap -F ip (Узнает основные открытые порты)
Получите нечто вроде такого.
Nmap scan report for duckduckgo.com (46.51.197.89)
Host is up (0.38s latency).
rDNS record for 46.51.197.89: ec2-46-51-197-89.eu-west-1.compute.amazonaws.com
Not shown: 97 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 7.75 seconds
С помощью nmap можно также идентифицировать отдельные версии сервисов или же ОС сервера.
Например:
sudo nmap -O ip
Running (JUST GUESSING): Crestron 2-Series (90%), Netgear embedded (90%), Western Digital embedded (90%), HP embedded (87%), AXIS Linux 2.6.X (87%), Linux 2.6.X|3.X (85%)
OS CPE: cpe:/o:crestron:2_series cpe:/o:axis:linux:2.6 cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
Aggressive OS guesses: Crestron XPanel control system (90%), Netgear DG834G WAP or Western Digital WD TV media player (90%), HP P2000 G3 NAS device (87%), AXIS 210A or 211 Network Camera (Linux 2.6) (87%), Linux 2.6.32 (85%), Linux 3.0 - 3.1 (85%)
No exact OS matches for host (test conditions non-ideal).
OS detection performed. Please report any incorrect results at
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
.Nmap done: 1 IP address (1 host up) scanned in 59.76 seconds
Подробнее здесь -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Это не всегда верная информация, поэтому полностью полагаться на нее не стоит.
Нам нужно узнать, какой программный сервер использует сайт. Чаще всего это либо Nginx, либо Apache.
Иногда это можно увидеть если вбить неправильный урл и при необработке его сайтом, этим займется сервер. Такое бывает чаще всего на самописных сайтах.
Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Если вам повезет, там будет также версия. Обычно этим грешит Apache.
Но даже если 404 ошибка обрабатывается сайтом - можно ввести очень длинный урл в строку запроса. Чтобы нам выдало ошибку - 414 Request-URI Too Large
Там иногда может быть версия.
-- Полезные страницы
Бывает полезно знать страницы логина, админку и некоторые другие страницы. Чтобы их отыскать вы можете попробовать перебрать основные известные варианты, либо найти их в коде страницы или же в карте сайта. Для подобных дел можно написать простой скрипт или же использовать готовое решение. Нумитира кстати публиковал на Runion какой-то скрипт на перл.
Может быть также гугл проиндексировал их. Учите запросы гугла site:, inurl:, filetype: и другие
Также можно угадать например в wordpress - wp-admin/, wp-login/ - Например
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
В xenforo - это admin.php Например
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
И так далее..
2) Ищем уязвимые места
Разумеется сначала нужно попробовать найти известные уязвимости по той информации, которую мы собрали в предыдущем пункте.
Здесь могут помочь сайты:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Например ищем все эксплоиты по Вордпресс -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Или по конкретным плагинам -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Что делать с найденными эксплоитами будет рассмотрено в следующем разделе.
А пока подумаем, что же делать, если нам неизвестны версии ПО или же это самописный сайт.
Тут друг мой придется потрудиться ручками. Какие же основные уязвимости бывают на сайтах?
-- SQL - Ошибка в запросах баз данных. Вы должны знать, что каждый сайт имеет БД, в которой хранит постоянно какую-то информацию. Это может быть база пользователей, статей и многое другое. Когда мы вводим какой-то урл, сайт обращается к базе и извлекает нам данные в виде понятной для браузера формы - html-разметки
Поступают запросы от юзера обычно двух типов - GET или же POST
Самый простой способ проверить на наличие sql ошибки ввести в параметр кавычку. Или другие заведомо неправильные параметры.
Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
При POST же запросах попробуйте вбить эту самую кавычку в поля формы.
Подробнее почитайте этот документ от Positive Technologies -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Данная ошибка при правильной эксплуатации позволит извлечь базу данных форума. Для автоматизации используй - sqlmap. Для ручного использования необходимо изучить язык запросов SQL.
-- XSS - Эта ошибка позволяет исполнение скриптов, введенных пользователем.
Проверяется обычно в простом варианте также заполнением параметров запроса данным выражением - <script>alert('xss')</script>
Если вылетит всплывающее сообщение с xss, значит запрос уязвим. Опасна тем, что позволяет украсть определенные данные юзера.
-- CSRF - Запросы от лица юзера. Это уязвимость опасна в случае если сайт имеет возможность логина, но не генерирует для каждой формы специальный csrf-токен.
Тогда возможно создать запрос от лица юзера просто подкинув ему ссылку на веб-страницу на вашем домене. Если сделать автоматом исполняющийся скрипт для отправки запроса при заходе, тогда все будет мгновенно происходить, а юзер может даже и не заметить того.
Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
В старых версиях Opencart, на котором он сделан в форме смены пароля не надо было вводить пароль. И благодаря этому можно сменить пасс юзера подкинув ему ссылку на подобный html-файл. Сделан для примера. Там до сих пор нет csrf-токенов, но чтобы заюзать данный файл нужно заменить 123456 на ваш пасс, а остальное на новый. Но вполне вероятно, что для других форм, что есть на подобных сайтах данная уязвимость сработает и просто так. Ищите.
<form action="
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
" method="post" enctype="multipart/form-data"><div class="content">
<table class="form">
<tbody>
<tr>
<td><input name="old_password" value="123456" type="hidden">
</td>
</tr>
<tr>
<td><input name="password" value="987654321" type="hidden">
</td>
</tr>
<tr>
<td><input name="confirm" value="987654321" type="hidden">
</td>
</tr>
</tbody></table>
</div>
<div class="buttons">
<div class="right"><input value="Continue" class="button" type="submit"></div>
</div>
</form>
Это были основные уязвимости. Существует еще множество других, специфических, например PHP Object Injection, основанная на логике языка PHP или ошибки темплейтов в python - django,flask. Чтобы ими воспользоваться вам необходимо изучить конкретику подробнее.
3) Взлом.
В случае с известными уязвимостями вы можете просто использовать готовые эксплойты. В этом нет ничего сложного. Просто чаще всего они публикуются на англ языке. Внимательно вчитывайтесь в описание и восполняйте недостаток знаний путем гугления незнакомых терминов или техник.
Например -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Здесь речь идет о xss-уязвимости для YaBB, просто подставляем в урл в конец необходимый скрипт. Чтобы этот скрипт принес какую-то пользу ищем, как с помощью javascript компрометировать пользователей или же можете воспользоться xss-фреймворком Beef, который позволяет легко в web-интерфейсе управлять зомби-машинами юзеров.
Также если вы хотите потренироваться на конкретном эксплойте, против заведомо уязвимых сайтов, то читаем такое
Google Dork :
#+ inurl:YaBB.pl?num=
#+ "Powered by YaBB 2.5"
#+ "Powered by YaBB 2.6.11"
Гугл дорк - это то, что необходимо вбить в гугле, чтобы найти уязвимые для данного эксплойта сайты. Все банально просто.
Иногда возможен грубых перебор силой, т.е брутфорс админки сайта или страницы логина. Также в некоторых случаях помогает Социальная Инженерия, но все-таки это больше взлом конкретного человека, а не веб-сайта.
В случае с самописными сайтами вам необходимо пополнить багаж знаний. Чтобы взломать сайт надо минимум также хорошо, как админ понимать, как он работает. Максимум - гораздо больше. Узнаем язык и изучаем. Чаще всего сайты пишутся на php.
Изучаем кратко html,javascript. Читаем информацию о xss,sql,csrf. Понимаем get,post запросы. Пишем простой сайт с нуля, чтобы понимать стандартную структуру.
Изучаем Линукс, чтобы знать на каком серверном ПО хостится сайт и как настраивается сервер.
Учимся программировать на скриптовом языке для понимания эксплойтов или написания простых своих. Для этого подойдет python,perl.