- Обзор площадки для тестирования веб-уязвимостей OWASP Top-10 на примере bWAPP
- SQL-injection
- Или вас интересуют XSS?
- Просто почитать чужие файлы?
- Тестирование «черным ящиком»
- Заключение
- Список литературы
- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- bWAPP
- Описание bWAPP
- Уязвимости в bWAPP
- Различия между bWAPP и bee-box
- Справка по bee-box
- Установка bWAPP
- Установка bWAPP в Web Security Dojo
- Установка bee-box в VirtualBox
Обзор площадки для тестирования веб-уязвимостей OWASP Top-10 на примере bWAPP
В этой статье предлагаю читателю ознакомится с уязвимостями веб-приложений (и не только), по классификации OWASP Top-10, и их эксплуатацией на примере bWAPP.
Open Web Application Security Project (OWASP) — это открытый проект обеспечения безопасности веб-приложений. Сообщество OWASP включает в себя корпорации, образовательные организации и частных лиц со всего мира. Сообщество работает над созданием статей, учебных пособий, документации, инструментов и технологий, находящихся в свободном доступе. Участники проекта уже десять лет составляют список Топ-10 самых опасных уязвимостей в веб-приложениях, стараясь привлечь внимание всех веб-разработчиков.
Сам топ-10 выглядит следющим образом:
A1 Внедрение кода
A2 Некорректная аутентификация и управление сессией
A3 Межсайтовый скриптинг (XSS)
A4 Небезопасные прямые ссылки на объекты
A5 Небезопасная конфигурация
A6 Утечка чувствительных данных
A7 Отсутствие контроля доступа к функциональному уровню
A8 Подделка межсайтовых запросов (CSRF)
A9 Использование компонентов с известными уязвимостями
A10 Невалидированные редиректы
Рейтинг отражает не только распространенность, но и опасность угрозы.
buggy web application (bWAPP) — это опенсорс веб-приложение, свободное для скачиваний. Отличает себя от других тем, что содержит около 100 уязвимостей, классифицированных по топ-10 от OWASP. Предназначается для поиска и эксплуатации уязвимостей в веб-приложениях и не только.
Автор bWAPP — Malik Mesellem (его блог)
Это PHP приложение, использующее MYSQL. Можно развернуть на винде/линуксе, на WAMP и XAMPP. Имеется также полностью готовая к употреблению виртуальная машина bee-box, которая и будет использована в статье.
- SQL, HTML, iFrame, SSI, OS Command, XML, XPath, LDAP and SMTP injections
- Blind SQL and Blind OS Command injection
- Bash Shellshock (CGI) and Heartbleed vulnerability (OpenSSL)
- Cross-Site Scripting (XSS) and Cross-Site Tracing (XST)
- Cross-Site Request Forgery (CSRF)
- AJAX and Web Services vulnerabilities (JSON/XML/SOAP/WSDL)
- Malicious, unrestricted file uploads and backdoor files
- Authentication, authorization and session management issues
- Arbitrary file access and directory traversals
- Local and remote file inclusions (LFI/RFI)
- Configuration issues: Man-in-the-Middle, cross-domain policy files, information disclosures.
- HTTP parameter pollution and HTTP response splitting
- Denial-of-Service (DoS) attacks: Slow HTTP and XML Entity Expansion
- Insecure distcc, FTP, NTP, Samba, SNMP, VNC, WebDAV configurations
- HTML5 ClickJacking, Cross-Origin Resource Sharing (CORS) and web storage issues
- Unvalidated redirects and forwards, and cookie poisoning
- Cookie poisoning and insecure cryptographic storage
- Server Side Request Forgery (SSRF)
- XML External Entity attacks (XXE)
Что вас ждет в статье:
- Освещение нескольких уязвимостей — поиск, эксплуатация, использование пентест программ.
- Прохождение bwapp несколькими способами, не используя веб.
На кого расчитанна статья:
- На людей увлеченных информационной безопасностью, веб-разработчиков (я надеюсь:)), всех, кому интересна тема информационной безопасности, и чья работа так или иначе связана с веб-технологиями.
Требования:
- Жажда знаний
- Машина, на которой вы развернете bWAPP.
- Опционально — опыт использование пентест тулз, обзор и использование которых широко освещены на Хабре.
Цель статьи:
- Показать отличную площадку для тестирования своих навыков пентеста и/или разработки. Кратко ввести в курс дел безопасности веб-приложений. Ну и само соревнование никто не отменял 🙂
WARNING!
Чего не будет в статье:
1. Освещение ошибок конфигурации чего-либо — нет объяснений природы бага.
2. Обзора программ, которые помогают при пентесте.
Рассматриваемые уязвимости выбраны специально под легкость объяснения/занимаемое место в статье.
Ссылки на вспомогательные статьи/софт/етс приведены в конце статьи.
SQL-injection
Выбираем SQL Injection (GET/Search)
Открывается страница, где нам предлагают выбрать фильм. Что ж, попытаем счастье — введем Hulk.
Подставляем кавычку, получаем ошибку:
Воспользуемся техникой order by и подберем количество столбцов:
Дальше используем union:
Получаем номера столбцов:
Получаем имя БД, юзера, хеш пароля:
SQL Injection (POST/Search)
Открываем /bWAPP/sqli_6.php, вводим Hulk’, баг есть, но адресная строка нам не помогает? Поможет Burpsuite и Sqlmap:
В burpsuite открываем наш запрос
Ошибка есть, теперь удаляем кавычку, сохраняем поле «Request» в .txt файл.
Открываем sqlmap и выполняем команду:
Проверить sqlmap можно, например, подставив то, что программа нам предлагает, типа такого:
Просто подставим payload в адресную строку:
тем самым получим токен, что означает, что задача выполнена:
Или вас интересуют XSS?
Их здесь полно и на любой вкус.
Выбираем XSS — Reflected (GET)
Подставляем
Просто почитать чужие файлы?
Откроем Directory Traversal — Files
Попробуем подставить /etc/passwd:
Откроем Directory Traversal — Directories
Прочитаем листинг /etc/:
Тестирование «черным ящиком»
Как любитель boot2root образов для пентеста (собственно так я и вышел на bWAPP) хотел бы вам показать тестирование без веба, с моими небольшими пояснениями.
Просканируем цель nmap’ом:
Здесь не будет результатов сканера Nikto (Рекомендую выполнить скан самостоятельно), из-за рамок статьи, я ограничусь разбором FTP и VNC сервисов.
Анализируя эти 2 результата, мы понимаем, что ftp папка (она же /webdav/) доступна через http.
Значит будем заливать php шелл.
Анонимный доступ, аплоад, ftp через http, чего еще пожелать? 🙂
Пробуем подключится по 192.168.1.18:5901
Хорошо, воспользуемся hydra:
Коннектимся… тадам! Неожиданно, но это права root’а.
Раз root, тогда смотрим /etc/shadow
Воспользуемся hashcat’ом для подбора паролей:
Вот такой улов.
Заключение
Bee-box немного выходит за рамки обычного write-up’а по boot2root образам. В нем каждый сможет отыскать что-то, что давно хотел попробовать/выучить/узнать.
Статья получилась сумбурной, но на мой взгляд, свою задачу я выполнил, ведь цель была познакомить читателя с площадкой для тестирования:
- Захотели узнать, к примеру, что такое Heartbleed? Легко! Запускаете его в виртуалке в 2 клика мыши.
- Ознакомиться/вспомнить какой-то инструмент или технологию, быстро проверив на практике, я считаю, отличный вариант.
- Здесь вполне можно прокачать навыки пентеста, веб-технологий, применений специфичного софта.
Список литературы
Автор bWAPP — Malik Mesellem (его блог)
Сам Топ-10 OWASP
Отличная подборка тематических статей от BeLove
Вторая подборка описание пентест утилит, также от BeLove
Творение g0tmi1k — сайт, на котором собраны boot2root образы
Спасибо за внимание. Отвечу на любые вопросы.
Источник
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
bWAPP
Описание bWAPP
bWAPP, или buggy web application (глючное веб-приложение), — это бесплатное, с открытым исходным кодом, намеренно небезопасное веб-приложение.
Оно помогает энтузиастам по безопасности, разработчикам и студентам обнаруживать и предотвращать веб-уязвимости.
bWAPP подготавливает для проведения успешных тестов на проникновение и участия в проектах этичного хакинга.
Автор: Malik Mesellem
Лицензия: CC BY-NC-ND 4.0
Уязвимости в bWAPP
bWAPP содержит более 100 веб-багов.
bWAPP охватывает все уязвимости из OWASP Top 10 project, включая:
- SQL, HTML, iFrame, SSI, OS Command, PHP, XML, XPath, LDAP, Host Header и SMTP инъекции
- Cross-Site Scripting (XSS), Cross-Site Tracing (XST) и Cross-Site Request Forgery (CSRF)
- Проблемы AJAX и веб-служб (jQuery/JSON/XML/SOAP/WSDL)
- Вопросы аутентификации, авторизации и сессий, уязвимость выгрузки файлов и файлов бэкдоров
- Произвольный доступ к файлам, лазание по директориями (directory traversals), локальное и удалённое внедрение файлов (LFI/RFI)
- Проблемы конфигурации: Man-in-the-Middle, файлы cross-domain policy, раскрытие информации,…
- HTTP parameter pollution, HTTP response splitting и HTTP verb tampering
- Небезопасные конфигурации DistCC, FTP, NTP, Samba, SNMP, VNC и WebDAV
- HTML5 ClickJacking, Cross-Origin Resource Sharing (CORS) и проблемы веб-хранилища
- XML External Entity attacks (XXE) и Server Side Request Forgery (SSRF)
- Уязвимости Heartbleed и Shellshock (OpenSSL), Атаки отказ-в-обслуживании (DoS)
- Parameter tampering, cookie и password reset poisoning
Различия между bWAPP и bee-box
bWAPP — это непосредственно набор веб-приложений для поиска и тестирования уязвимостей. А bee-box — это виртуальная машина Linux с предустановленным bWAPP.
С bee-box вы можете взламывать даже на уровне системы. Полный набор уязвимостей доступен именно в bee-box.
Справка по bee-box
Учётные данные Linux:
Учётные данные MySQL:
Измените настройки Postfix (relayhost,…) под ваше окружение.
- Файл конфигурации: /etc/postfix/main.cf
bee-box даёт вам сразу несколько возможностей взломать веб-сайт bWAPP. Возможно даже взломать bee-box для получения root доступа.
Сделайте снимок (snapshot) VM до взлома bee-box. Также резервная копия веб-сайта bWAPP размещена в /var/www/bWAPP_BAK.
Для переустановки базы данных bWAPP, удалите базу данных с помощью phpmyadmin (http://[IP]/phpmyadmin/). После этого, перейдите на страницу :ttps://[IP]/bWAPP/install.php
Не обновляйте операционную систему Linux — пропадёт всё веселье.
Установка bWAPP
Требования:
- Windows, Linux, Unix, Mac OS,…
- веб-сервер (Apache, Nginx, IIS,…)
- PHP расширения
- MySQL
Или вы можете установить WAMP или XAMPP.
Шаги установки bWAPP на веб-сервер:
- Подразумевается, что вы уже установили Apache/IIS, PHP и MySQL.
- Извлеките содержимое ‘zip’ файла. Команда в Linux:
- Переместите директорию ‘bWAPP’ (и всё содержимое) в корень вашего веб-сервера.
- Дайте полные разрешения для директорий ‘passwords’, ‘images’, ‘documents’ и ‘logs’. Этот шаг опциональный, но даст вам намного больше веселья при эксплуатации bWAPP такими инструментами как sqlmap и Metasploit.
Пример на Linux:
- Отредактируйте файл ‘admin/settings.php’ на ваши собственные настройки подключения к базе данных.
- Откройте в браузере файл ‘install.php’ в директории ‘bWAPP’.
Кликните на ‘here’ (Click ‘here’ to install bWAPP). Будет создана и заполнена база данных ‘bWAPP’.
Перейдите к странице входа. Если вы открыли в браузере корневую директорию bWAPP, то вы будете перенаправлены.
- Войдите с учётными данными по умолчанию, или создайте нового пользователя.
Учётные данные по умолчанию: bee/bug
Установка bWAPP в Web Security Dojo
bWAPP отсутствует в Web Security Dojo, но его можно с лёгкостью установить туда. Создайте файл install_bWAPP.sh следующего содержания:
Запустите этот скрипт командой:
Перейдите на страницу http://localhost/bwapp/install.php для установки. Кликните на ‘here’ (Click ‘here‘ to install bWAPP). Будет создана и заполнена база данных ‘bWAPP’.
Перейдите к странице входа http://localhost/bwapp/login.php
Теперь ‘bWAPP’ будет всегда доступен по ссылке http://localhost/bwapp/
Установка bee-box в VirtualBox
Требования
- Windows, Linux или Mac OS
- VMware Player, Workstation, Fusion или Oracle VirtualBox
Шаги установки bee-box в VirtualBox
Подразумевается, что вы уже установили VirtualBox.
Для установки в VirtualBox, создайте новую виртуальную машину без диска. Вместо запуска перейдите в настройки и подключите в качестве диска файл bee-box.vmdk из распакованного архива.
Перед запуском перейдите в настройки виртуальной машины в параметры сетевого адаптера. Измените «Тип подключения» на «Сетевой мост». А также «Неразборчивый режим» на «Разрешить всё»:
Узнайте IP адрес виртуальной машины:
На скриншоте видно, что IP адрес машины 192.168.0.227.
В веб-браузере основной машины введите IP адрес виртуальной машины, например http://192.168.0.227/bWAPP/login.php.
Войдите с учётными данными bWAPP по умолчанию или создайте нового пользователя. Учётные данные по умолчанию: bee/bug. Теперь всё готово.
Источник