Hack the web! Как проверить сайт на уязвимости и как их эксплуатируют

Взлом сайтов — один из самых распространенных типов атак. Если тебе интересно, как взламывают сайты и на что нужно обратить внимание, чтобы защитить свой ресурс, то эта статья для тебя. Здесь я разберу самые начала пентеста веб-приложений и на примерах покажу, как работать с популярными движками.

На январь 2020 года в интернете насчитывается 1,74 миллиарда сайтов, и многие из них уязвимы. Десять лет назад исследование Web Application Security Consortium показало, что минимум 13% сайтов можно взломать автоматически. А в недавнем исследовании Positive Technologies сообщается об уязвимости 19% протестированных веб-приложений. Поистине огромный простор для действий злоумышленников!

Общие принципы взлома сайтов

По структуре сайты делятся на три больших класса:

  • самописные (сделанные вручную на HTML, произведенные статическим генератором типа Jekyll или собранные в программе-конструкторе типа Adobe Dreamweaver);
  • сделанные в онлайновых конструкторах (в основном это сайты-визитки без каких-либо баз данных и передаваемых полей);
  • работающие на готовых CMS (Content Management System, системах управления контентом).

Встречаются еще самодельные CMS, созданные для конкретного сайта, но это сейчас стало редкостью — позволить себе поддержку своей системы могут только самые крупные ресурсы, и оправдать связанные с этим затраты непросто.

В основе большинства современных сайтов — готовые движки. Например, Xakep.ru не исключение: он работает на популярной системе WordPress (по крайней мере сейчас, в 2020 году).

С точки зрения атакующего, движки сайтов ничем не отличаются от других сервисов и служб. Их исходный код обычно находится в общем доступе, и любой исследователь может проанализировать его на ошибки, в том числе бреши в безопасности. Поэтому сайты на CMS редко становятся жертвами целевой атаки. Чаще их ломают массово.

Такой взлом автоматизирован и обычно протекает по следующей схеме: злоумышленник находит уязвимость (самостоятельно или просто гуглит что-то свежее). Затем он делает эксплоит или берет готовый и пишет специализированный бот. Этот бот ищет указанную дыру на всех сайтах подряд в заданном диапазоне и пытается эксплуатировать ее.

Казалось бы, для защиты от автоматических атак надо всего-то поддерживать программное обеспечение в актуальном состоянии, но в реальности CMS обрастает разными дополнениями, и уследить за всеми становится сложно.

При пентесте стоит несколько иная задача — проверить конкретный сайт на уязвимости. Об этом мы и поговорим.

WARNING

Статья предназначена для «белых хакеров», профессиональных пентестеров и руководителей службы информационной безопасности (CISO). Ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный этим материалом.

Разведка

Прежде чем пытаться атаковать цель, нужно собрать информацию о ней. Для этого хорошо подходит инструмент WhatWeb. Эта утилита предоставляет подробную информацию о CMS жертвы и использованных ей веб-инструментах.

Советую запускать WhatWeb с ключом , указывая после него значение 3 или 4. Разница между ними только в том, что во втором случае WhatWeb будет сканировать еще и субдиректории. Имей в виду, что оба варианта задают агрессивный метод опросов — со всеми вытекающими, а точнее «втекающими» на сервер логами.

Вот пример запуска и собранных ответов:

$ whatweb -a3 https://URL https://URL [200 OK] Cookies[PHPSESSID], Country[UNITED KINGDOM][GB], Frame, HTML5, JQuery[1.9.0,2.2.3], Open-Graph-Protocol[website], PHP[7.1.33], PasswordField[password], Script[application/ld+json,text/javascript], Title[Bower Partnerships | Best Equity Release Broker Customer Service 2019], UncommonHeaders[link,x-robots-tag,alt-svc], WordPress, X-Powered-By[PHP/7.1.33], X-UA-Compatible[IE=EDGE]

Здесь мы видим, что это сайт британской компании, сделанный на WordPress, используется PHP v. 7.1.33 и jQuery 1.9.0, 2.2.3. Неплохо для начала!

Если у тебя нет VPN или ты просто не хочешь заморачиваться с установкой, обрати внимание на онлайновую версию WhatWeb.

WhatWeb online

Кстати, при работе с заграничными сайтами она дает большую скорость.

Если тебе достаточно определить только название CMS, то для этого есть отдельные сервисы, даже русскоязычные.

Вот свежая статистика популярности различных CMS в рунете:

  • WordPress — 58,12%;
  • Joomla — 17,12%;
  • OpenCart — 4,65%;
  • Drupal — 3,75%;
  • Wix — 3,74%;
  • MODX Revolution — 2,81%;
  • MODX Evolution — 2,76%;
  • Nethouse — 2,23%;
  • прочие — 4,78%.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


8bit:

Комментарии (9)

  • Собственно чтобы узнать движок сайта, достаточно установить в браузер Wappalyzer.
    Продолжение по подписке не читал, но вижу, что WPscan один самых популярных инструментов.
    Запускают сканирование по большому диапазону адресов, для большей эффективности. Практически каждый второй сайт на WP требует обновлений, либо ядро, либо плагины, поэтому их и ломают пачками

  • >Например, программа dirb поможет пробежаться по открытым директориям и вернет коды ответов.

    Есть круче тулза, называется gobuster. Она умеет и поддомены сканить и куча всего еще вдобавок к тому что умеет dirb. Но в отличии от нее она еще во много потоков умеет это делать :) Поэтому люто советую.

    • Это из набора Kali, про нее только ленивый не знает.
      Кто читал материал полностью, можно коротко и на пальцах?
      Материал переспламленный кодом по установке и конфигурации?

      • Материал переспламленный кодом по установке и конфигурации?

        Никакой установки и конфигурации, в Kali Linux уже всё готово.

        Коротко и на пальцах:
        - СMS бывают разные;
        - Нужно понять с какой CMS имеем дело;
        - Для WordPress используй WPScan;
        - Для Joomla! используй JoomScan;
        - Для остальных популярных CMS - как повезёт;
        - Самописные CMS сканируй и ковыряй всем что найдёшь в Kali Linux;
        - Кавычки ставь в репитере BurpSuite, при выводе ошибок заводи sqlmap.
        - Финал статьи с советами для дизайнеров/разработчиков: проверяйте код всего и вся, меньше плагинов, больше апдейтов.

      • тебе не к чему читать материал, ты и так всё знаешь!

  • А мне было интересно. Неплохая статья для скрипткидис и ньюбис. Я бы сделал намного больший упор на то, что не стоит сразу пытаться захачить всё что рядом лежит. Ибо наказние может быть болезненным и неотвратимым.

  • Адрес уязвимого сайта не на всех скриншотах скрыли :)

Похожие материалы