<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@cccoding</title><author><name>@cccoding</name></author><id>https://teletype.in/atom/cccoding</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/cccoding?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@cccoding?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cccoding"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/cccoding?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-07-05T04:19:16.989Z</updated><entry><id>cccoding:rJzexbgKm</id><link rel="alternate" type="text/html" href="https://teletype.in/@cccoding/rJzexbgKm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cccoding"></link><title>Обучение взлому и защите веб-приложений. Часть 2.(1) Словарная атака. Метод BrutForce.</title><published>2018-09-19T16:57:13.749Z</published><updated>2018-09-19T17:16:00.627Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/1d/1d3407bf-7344-495d-8cd3-d0468cfd88ab.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/46/469b77ae-0426-4086-b78b-98350f84a1ca.png&quot;&gt;Метод словарного перебора заключается в проверке всех возможных комбинаций пары логин-пароль.</summary><content type="html">
  &lt;p&gt;&lt;strong&gt;Метод словарного перебора заключается в проверке всех возможных комбинаций пары логин-пароль.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Взлом пароля может занять много времени, поэтому на практике такие атаки, зачастую, безуспешны.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Авторизация методом HTTPauth (на веб сервере Apache).&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Суть данной схемы в файле HTAcces, который используется для многих целей, в том числе для http авторизации.&lt;/p&gt;
  &lt;p&gt;Если вы размещаете такой файл в директории, к которой у веб-сервера есть доступ, то все файлы в нем станутзащищены по логину (id) и паролю пользователя.&lt;/p&gt;
  &lt;p&gt;Вы можете указать сообщение, которое видно пользователю и файл с логинами и паролями, которые используются для авторизации.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/46/469b77ae-0426-4086-b78b-98350f84a1ca.png&quot; width=&quot;1781&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Программа - notepad++&lt;/p&gt;
  &lt;p&gt;Для того, чтобы создать в Apache файл с логинами и паролями набираем в командной строке&lt;/p&gt;
  &lt;p&gt;\apache\bin\htpasswd.exe&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d8/d8a99746-9938-4f19-bdc5-4e9b98b9bdc3.png&quot; width=&quot;950&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;здесь вы видите синтаксис для вызова этой команды&lt;/p&gt;
  &lt;p&gt;Пишем -c pass.htpasswd &amp;quot;имя пользователя без кавычек&amp;quot;&lt;/p&gt;
  &lt;p&gt;жмем enter и нам будет предложено ввести пароль для этого пользователя.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/c4/c41a8f2c-f26d-42de-aa54-7c15afd02e6e.png&quot; width=&quot;944&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Имя целевого файла - pass&lt;/p&gt;
  &lt;p&gt;Файлы с расширением Htpasswd и Htacces защищены сервером по умолчанию и пользователи не могут получить к нимдоступ, однако лучше размещать эти файлы вне дерева документов веб-сервера.&lt;/p&gt;
  &lt;p&gt;Файл был создан!&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Теперь перейдем к практике.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Стоит упомянуть про LiveHttpHeaders. Это приложение позволяет нам в живую увидеть общение между браузером и сервером.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/b0/b0ca5941-cdfa-43b6-a1c4-44887925ebae.png&quot; width=&quot;1791&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Как мы видим на веб-сервере установлен специальный заголовок&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;&amp;quot;www-authenticate&amp;quot; &lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Он дает браузеру инструкцию авторизовать пользователя.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Введем неправильный пароль и посмотрим результат:&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/a3/a39a16cc-4288-4b83-9ae1-14c50a8b5638.png&quot; width=&quot;763&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Как мы можем видеть, браузер кодирует логин и пароль по схеме Base 64 и задаетспециальный http заголовок. Сервер декодирует эту строку и сравнивает сданными, сохраненными в htacces&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Теперь отправим корректные логин и пароль:&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/77/77ed2b52-a68d-4ec9-8c6d-0437958670ea.png&quot; width=&quot;1714&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;И как мы видим, в этот раз авторизация успешна. &lt;strong&gt;Браузер запоминает запрос авторизации и предоставленные данные и отправляет их автоматически при каждой попытке получить доступ к закрытым ресурсам, поэтому в дальнейшем авторизация не понадобится. &lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Теперь попробуем запустить атаку, направленную наэтот метод авторизации. Для этого запустим &lt;strong&gt;HYDRA - приложение, осуществляющее словарные атаки на многие вещи, включая httpauth и веб формы.&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/49/49a26c9f-b707-4568-aa6a-9f1f0e308dbf.png&quot; width=&quot;899&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Теперь мы видим описание параметров для вызова HYDRA.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/db/db599a7b-2859-48ad-bea5-59dadc556c7c.png&quot; width=&quot;893&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Для параметра L давайте укажем файл, содержащий &lt;strong&gt;список имен пользователей.&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/61/61ea67fe-d82e-4676-8a53-6049aeacf0e7.png&quot; width=&quot;900&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;-L..\dict_user.txt&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Этот список&lt;/strong&gt; выглядит просто как набор слов, который может содержать возможные имена пользователей.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/79/79218c66-41b1-4658-a1d0-6212d1e46fd6.png&quot; width=&quot;1781&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;dict_user.txt&lt;/p&gt;
  &lt;p&gt;Такой же файл есть и для паролей.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/09/091706e7-b181-428f-b6db-2fe67a1ae073.png&quot; width=&quot;1778&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;dict_pass.txt&lt;/p&gt;
  &lt;p&gt;Эти файлы имеют расширение .txt (то есть их можно открыть и в обычном блокноте)&lt;/p&gt;
  &lt;p&gt;Далее мы указываем файл, содержащий словарь паролей, а также адрес веб-сервера (который мы будеманализировать), имя атаки, а также путь к ресурсам, которые требуют авторизацию&lt;/p&gt;
  &lt;p&gt;-P..\dict_pass.txt localhost http-get /security/3/httpauth&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/6d/6df45a66-2a24-4e09-af2a-5086a68315f9.png&quot; width=&quot;890&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Запускаем команду:&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/91/91bce1db-0153-4602-8885-d38d32ca3693.png&quot; width=&quot;898&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Как мы видим, атака была проведена успешно.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Возможно, стоит упомянуть еще одну схему авторизации:&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Это простая форма авторизации, созданная на языке php. Она отображается по умолчанию. Если пользователь отправляет форму скрипт, то предоставленные данные сравниваются с соответствующими данными, содержащимися в переменных.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/c4/c45a7027-734c-45cd-a9a5-c97d97ba448c.png&quot; width=&quot;1067&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Чтобы авторизоваться, пользователь должен написать логин admin и пароль root&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/8e/8e53748a-5b08-422f-8108-62ea6541c0a9.png&quot; width=&quot;1684&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Посмотрим как работает эта схема:&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;при отправлении неправильного логин/пароль будет отображаться Error, если же дана правильная пара - мы увидим logged in.&lt;/p&gt;
  &lt;figure class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/32/32b12623-4b27-4aa7-a903-fa4e5b51d6a1.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;

</content></entry></feed>