Главная » Заметки » День 14. Пробую найти уязвимости в веб-приложении и использовать их
День 14. Пробую найти уязвимости в веб-приложении и использовать их
Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!

И снова я меняю направление изучения. Вчера планировал продолжить тестировать Active Directory по книге «Active Directory глазами хакера», но, как оказалось с первых страниц, она для меня пока неподъемная. Поэтому возвращаюсь снова к веб-приложениям. Попробую разобраться с книгой Эндриана Прутяну «Как стать хакером». В ней, как заявляет автор в предисловии, рассказывается о защите веб-приложений. Параллельно запущу на локальном сервере один из своих старых сайтов, в котором, вероятно, есть множество уязвимостей, которые постараюсь найти.

Судя по первым страницам книги, вернусь к изучению Burp Suite (затрагивал в 11 день), sqlmap и ZAP (Zed Attack Proxy от OWASP).

Развернул сервер, запустил сайт. Вот вывод команды uname -a:

Linux server 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:26:57 UTC 2021 i686 i686 i686 GNU/Linux

Взял специально не последнюю версию Ubuntu.

Традиционно инициализируем базу данных для Metasploit:

sudo msfdb init

Запускаем Metasploit:

msfconsole

Далее создаем рабочее пространство, в котором будем аккумулировать информацию:

msf6 > workspace -a cb

Теперь собираем информацию при помощи встроенной в MSF утилиты nmap (в отличии от обычной, она сохраняет данные в базе данных MSF):

msf6 > db_nmap -sV -Pn -v 192.168.56.110

Да, кстати, IP сервера, на котором размещен сайт, 192.168.56.110. Например, чтобы найти все HTTP-службы, можно воспользоваться следующей командой (с ней я разбирался в 3 день):

msf6 > services -s http

В книге так же предлагается использовать инструмент WhatWeb, для определения дополнительной информации:

$ whatweb -a 3 192.168.56.110 | sed 's/, /\n/g'

Следующий инструмент – Nikto (встретился на 11 день обучения), тоже может вытащить много полезной информации:

$ nikto -h 192.168.56.110 -p 80

Для полного перебора потребуются базы со списками слов, например, эта: https://github.com/danielmiessler/SecLists.

Например, Nikto нашел файл robots.txt, в котором перечислены неявные каталоги (эта информация предназначена для поисковых роботов).  Для атакующей стороны этот файл может быть хорошей отправной точкой для взлома каталогов и файлов.

Итак, пока OWASP ZAP тестирует сайт, перейду к анализу сети. Открываем msfconsole.

При помощи утилиты nmap попробуем узнать версию любых найденных служб, обнаружить операционную систему и не будем пинговать хост:

msf6 > db_nmap -sV -A -T4 -Pn -p1- 192.168.56.110

И это все что мы имеем (ввод команды services):

192.168.56.110  80    tcp    http  open   Apache httpd 2.4.18 (Ubuntu)

Теперь, видимо, необходимо импровизировать, так как с книгой (что неудивительно) пошли различия. Если загуглить эту версию Apache, то можно натолкнуться на БДУ (база данных угроз) ФСТЭК (https://bdu.fstec.ru/vul/2019-01404). Суть этой уязвимости в том, что если получится поместить вредоносный скрипт на сервер, то можно установить контроль над всей машиной (сервером). На данный момент, я не знаю, как это сделать, поэтому отложу это на потом и продолжу чтение книги.

В книге приводится пример проникновения в систему через порт 3306. В моем случае этот порт закрыт (как и на многих сайтах, хостинг заботится о безопасности и позволяет входить в базу данных через локалхост). Далее, конечно, все расписано красиво и без подводных камней. Но для моего случая это не подходит.

Тем временем OWASP ZAP закончил свою работу. На тестируемом сайте возможен clickjacking (с ним я знакомился на 11 день). В принципе, ожидаемо, так как когда я писал этот сайт, про такие вещи не знал (что они возможны).

Так же на сайте куки не имеют флаг HttpOnly (Cookie No HttpOnly Flag), поэтому возможен перехват сеанса, но при условии возможности запуска JavaScript. На данный момент у меня есть только одна идея, где этот JS-скрипт можно сохранить. Но, на сколько я помню, в этом поле я ограничивал количество символов и экранировал все входные данные. Посмотрим, получится ли у меня это обойти.

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

На этом на сегодня хватит.

Просмотров: 17
30.04.2022
Автор