Статья Wapiti - Сканер Web - приложений

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

1515844301877.png


Wapiti - позволяет вам проверить безопасность ваших веб-сайтов или веб-приложений.
Он выполняет сканирование «черного ящика» (не изучает исходный код) веб-приложения, анализ страниц относящихся к приложению. И поиск скриптов и форм принимающих данные от пользователей.
Тестирование «черного ящика» – это:
  • тестирование, как функциональное, так и нефункциональное, не предполагающее знания внутреннего устройства компонента или системы.
  • тест-дизайн, основанный на технике черного ящика – процедура написания или выбора тест-кейсов на основе анализа функциональной или нефункциональной спецификации компонента или системы без знания ее внутреннего устройства.
Почему именно «черный ящик»? Тестируемая программа для тестировщика – как черный непрозрачный ящик, содержания которого он не видит. Целью этой техники является поиск ошибок в таких категориях:
  • неправильно реализованные или недостающие функции;
  • ошибки интерфейса;
  • ошибки в структурах данных или организации доступа к внешним базам данных;
  • ошибки поведения или недостаточность производительности системы;
Таким образом, мы не имеем представления о структуре и внутреннем устройстве системы. Нужно концентрироваться на том, что программа делает, а не на том, как она это делает.
Как только он получает список URL-адресов, форм и их входов, Wapiti действует как fuzzer, подставляя полезные нагрузки, чтобы увидеть, является ли сценарий уязвимым.
Обновление в Wapiti 3.0.0:
  • Поиск файлов (локальные и удаленные, include/require, fopen, readfile ...)
  • Инъекция базы данных (инъекции PHP / JSP / ASP SQL и инъекции XPath)
  • XSS (Cross Site Scripting) инъекции (отраженные и постоянные)
  • Обнаружение методов исполнения команд (eval (), system (), passtru () ...)
  • CRLF Injection (разделение ответа HTTP, фиксация сеанса ...)
  • XXE (XML External Entity) injection
  • Использование известных потенциально опасных файлов (благодаря базе данных Nikto)
  • Уявимости в конфигурациях .htaccess, которые можно обойти
  • Наличие резервных файлов, предоставляющих конфиденциальную информацию (раскрытие исходного кода)
  • Shellshock (также известный как Bash bug)
Модуль buster также позволяет проводить bruteforce атаку на каталоги и имена файлов на целевом веб-сервере.
Wapiti - поддерживает методы GET и POST HTTP для атак.
Он также поддерживает multipart/form-data и может вводить полезную нагрузку в имена файлов.
Предупреждения возникают при обнаружении аномальных ответов (например, 500 ошибок и тайм-аутов)
Wapiti определяет разницу между постоянной и отраженной уязвимостью XSS.
Функциональные особенности:
  • Создание отчетов об уязвимостях в различных форматах (HTML, XML, JSON, TXT ...)
  • Возможность приостанавливать и возобновлять сканирование или атаку (механизм сеанса с использованием баз данных sqlite3)
  • Цветовое выделение строк с найденными уязвимостями
  • Уровни сканирования
  • Быстрый и простой способ активировать / деактивировать модули атаки
  • Добавление полезной нагрузки может быть таким же простым, как добавление строки в текстовый файл
Возможности:
  • Поддержка прокси HTTP, HTTPS и SOCKS5
  • Аутентификация с помощью нескольких методов: Basic, Digest, Kerberos или NTLM
  • Возможность ограничить область сканирования (домен, папка, страница, URL-адрес)
  • Автоматическое удаление одного из них - больше параметров в URL-адресах
  • Множественные меры предосторожности против бесконечных циклов сканирования (пример ifor, ограничение значений для параметра)
  • Возможность установки первых URL-адресов для изучения (даже если не в области)
  • Возможность исключить некоторые URL-адреса сканирования и атак (например: URL logout)
  • Импорт файлов cookie (получения их с помощью инструмента wapiti-getcookie)
  • Возможность активировать/деактивировать проверку сертификатов SSL
  • Извлечение URL из Flash SWF-файлов
  • Возможность извлечь URL из javascript (очень простой JS-интерпретатор)
  • HTML5 (understand recent HTML tags)
  • Несколько вариантов управления поведением и ограничениями crawler’a.
  • Пропуск некоторых имен параметров во время атаки.
  • Установка максимального времени для процесса сканирования.
  • Добавление некоторых настраиваемых HTTP-заголовков или настройка пользовательского User-Agent.
Установка:
Скачиваем Wapiti и распаковываем отсюда:

Код:
https://sourceforge.net/projects/wapiti/files/

Запускаем установку:

Код:
python3 setup.py install

1515844376731.png


Справка:

Код:
wapiti –h

1515844447884.png


Запуск сканирования:

Код:
wapiti –u http://example.com/
1515844477784.png


Отчет сохраняется в .html файле. На этом все, надеюсь, информация окажется полезной.
 
Traceback (most recent call last):
File "setup.py", line 3, in <module>
from setuptools import setup, find_packages
ModuleNotFoundError: No module named 'setuptools'
 
  • Нравится
Реакции: Mokh
apt-get update && apt-get upgrade && apt-get dist-upgrade делал?
 
  • Нравится
Реакции: Mokh
Решил проблему так: sudo apt-get install python3-setuptools
 
  • Нравится
Реакции: Mokh
Traceback (most recent call last):
File "/usr/local/bin/wapiti", line 11, in <module>
load_entry_point('wapiti==3.0.0', 'console_scripts', 'wapiti')()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 572, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2752, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2405, in load
return self.resolve()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2411, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python2.7/dist-packages/wapiti-3.0.0-py2.7.egg/wapitiCore/main/wapiti.py", line 386
print("{}: {}".format(exception.__class__.__name__, exception), file=fd)
^
SyntaxError: invalid syntax
вот с таким болтом я сталкнулся
 
  • Нравится
Реакции: Mokh
Traceback (most recent call last):
File "/usr/local/bin/wapiti", line 11, in <module>
load_entry_point('wapiti==3.0.0', 'console_scripts', 'wapiti')()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 572, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2752, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2405, in load
return self.resolve()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2411, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python2.7/dist-packages/wapiti-3.0.0-py2.7.egg/wapitiCore/main/wapiti.py", line 386
print("{}: {}".format(exception.__class__.__name__, exception), file=fd)
^
SyntaxError: invalid syntax
вот с таким болтом я сталкнулся
Python:
sudo apt-get install python-requests

или
Python:
pip3 install requests
 
  • Нравится
Реакции: Mokh
все проблема решена)) не правильно установил!
 
  • Нравится
Реакции: Mokh
Oups! No translations found for your language... Using english.
Please send your translations for improvements.
не понял почему оно это пишет
 
Код:
...
[*] Launching module permanentxss
Traceback (most recent call last):
  File "/usr/bin/wapiti", line 11, in <module>
    load_entry_point('wapiti3==3.0.1', 'console_scripts', 'wapiti')()
  File "/usr/lib/python3/dist-packages/wapitiCore/main/wapiti.py", line 1002, in wapiti_main
    wap.attack()
  File "/usr/lib/python3/dist-packages/wapitiCore/main/wapiti.py", line 445, in attack
    self.report_gen.generate_report(self.output_file)
  File "/usr/lib/python3/dist-packages/wapitiCore/report/htmlreportgenerator.py", line 57, in generate_report
    copytree(os.path.join(self.BASE_DIR, self.REPORT_DIR, subdir), os.path.join(output_path, subdir))
  File "/usr/lib/python3.7/shutil.py", line 315, in copytree
    names = os.listdir(src)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/wapitiCore/report_template/js'

Все обновлено - проблема остается.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!