Это вольный перевод статьи http://pentesterconfessions.blogspot.ru/2007/10/how-to-use-w3af-to-audit-web.html по работе в w3af.
Перевод прислал Entest, спасибо ему, что поделился с нами этим материалом!
Введение
W3af (Web Application Attack and Audit Framework) — это open-source сканер веб-уязвимостей.
Этот сканер имеет как графический интерфейс, так и возможность работы из-под консоли. В общем, это фреймворк с большим количеством различных плагинов.
В данной статье будет описано как осуществить проверку веб-приложения на уязвимости XSS, CSRF и Sqli работая в w3af из под консоли.
Как пользоваться W3af
Для запуска W3af в консольном виде надо открыть терминал и напечатать:
w3af_console
Для того чтобы посмотреть список всех опций напишем:
w3af>>> help
И получим:
|-----------------------------------------------------------------------------| | start | Запустить сканирование. | | plugins | Включение и настройка плагинов. | | exploit | Эксплуатировать уязвимость. | | profiles | Показать список и использовать профайлы сканирования. | | cleanup | Очистить перед началом нового сканирования. | |-----------------------------------------------------------------------------| | help | Показать помощь. Наберите: help [команда] , чтобы увидеть | | | больше помощи по конкретной "команде" | | version | Показать информацию о версии w3af. | | keys | Показать сочетания клавиш. | |-----------------------------------------------------------------------------| | http-settings | Задать HTTP настройки фреймворка. | | misc-settings | Изменить остальные настройки w3af. | | target | Настроить целевой URL. | |-----------------------------------------------------------------------------| | back | Вернуться в предыдущее меню. | | exit | Выход из w3af. | |-----------------------------------------------------------------------------| | kb | Просмотреть уязвимости, доступные в Базе Знаний. | |-----------------------------------------------------------------------------|
Прежде всего надо сказать как настроить w3af для работы.
Для выбора опции достаточно напечатать ее название, для того чтобы вернуться к предыдущему уровню следует напечатать "back".
Если напечатать команду "view" то на экран будет выведен список настраиваемых параметров выбранной опции.
Теперь рассмотрим опцию "target". В ней задается URL для проводимой проверки.
Настройка опций:
w3af>>> target w3af/config:target>>> help
Для данной опции доступны следующие параметры:
|-----------------------------------------------------------------------------| | view | Список доступных опций и их значения. | | set | Установить значение параметра. | | save | Сохранить новую конфигурацию. | |-----------------------------------------------------------------------------| | back | Вернуться в предыдущее меню. | | exit | Выйти из w3af. | |-----------------------------------------------------------------------------|
Установим URL для проверки:
w3af/config:target>>> set target http://localhost w3af/config:target>>> view
Для дальнейшей работы необходимо настроить плагины.
w3af/config:target>>> back w3af>>> plugins w3af/plugins>>> help
|---------------------------------------------------------------------------------------------------| | list | Список доступных плагинов. | |---------------------------------------------------------------------------------------------------| | back | Перейти к предыдущему меню. | | exit | Выйти из w3af. | |---------------------------------------------------------------------------------------------------| | grep | Просмотр, настройка и включение плагинов grep | | audit | Просмотр, настройка и включение плагинов аудита | | evasion | Просмотр, настройка и включение плагинов уклонения | | crawl | Просмотр, настройка и включение плагинов обхода контента | | auth | Просмотр, настройка и включение плагинов аутентификации | | mangle | Просмотр, настройка и включение плагинов искажения | | output | Просмотр, настройка и включение плагинов вывода | | bruteforce | Просмотр, настройка и включение плагинов брутфорса | | infrastructure | Просмотр, настройка и включение плагинов инфраструктуры | |---------------------------------------------------------------------------------------------------|
Для аудита веб-приложения нам потребуется настроить как минимум четыре плагина. Audit, crawl, infrastructure и output.
Если мы напечатаем audit, то увидим все доступные настройки для этого плагина, такие как xss, csrf, sql и ldap инъекции и т.д. Кроме этого там также указано какие из настроек в данный момент включены.
Для включения определенных настроек следует напечатать:
w3af/plugins>>> audit xss,csrf,sqli
Для выбора всех настроек:
w3af/plugins>>> audit all
Нам как раз и нужно проверить веб-приложение на эти уязвимости. Кроме того мы хотим чтобы результат проверки отображался в консоли и был сохранен в виде html.
Для этого включим необходимые плагины crawl и output.
w3af/plugins>>> crawl web_spider,pykto w3af/plugins>>> infrastructure hmap w3af/plugins>>> output console,html_file
Немного информации об используемых плагинах:
Web_spider — Плагин представляет из себя классического web-паука. Он бродит по сайту и извлекает все ссылки и адреса форм.
Pykto — Плагин представляет из себя сканнер nikto, портированный на python. Он использует базу данных из nikto (scan_database) для поиска уязвимых ссылок.
Hmap — Плагин опознаёт удалённый веб-сервер, его тип, версию и установленные исправления.
Идентификация происходит не только через заголовок "Server". По сути плагин представляет из себя обёртку для hmap Dustin`a Lee.
Console — Этот плагин пишет отчёт о работе фреймворка в консоль.
Html_file — Плагин пишет отчёт о работе фреймворка в HTML-файл.
Для начала аудита выполняем следующие команды:
w3af/plugins>>> back w3af>>> start
Сканер работает довольно долго, так что придется запастись терпением. В итоге получим примерно такой отчет:
w3af>>> start Auto-enabling plugin: discovery.allowedMethods Auto-enabling plugin: discovery.error404page Auto-enabling plugin: discovery.serverHeader The Server header for this HTTP server is: Apache/2.2.3 (Ubuntu) PHP/5.2.1 Hmap plugin is starting. Fingerprinting may take a while. The most accurate fingerprint for this HTTP server is: Apache/2.0.55 (Ubuntu) PHP/5.1.2 pykto plugin is using "Apache/2.0.55 (Ubuntu) PHP/5.1.2" as the remote server type. This information was obtained by hmap plugin. pykto plugin found a vulnerability at URL: http://localhost/icons/ . Vulnerability description: Directory indexing is enabled, it should only be enabled for specific directories (if required). If indexing is not used, the /icons directory should be removed. The vulnerability was found in the request with id 128. pykto plugin found a vulnerability at URL: http://localhost/doc/ . Vulnerability description: The /doc directory is browsable. This may be /usr/doc. The vulnerability was found in the request with id 1865. pykto plugin found a vulnerability at URL: http://localhost/> . Vulnerability description: The IBM Web Traffic Express Caching Proxy is vulnerable to Cross Site Scripting (XSS). CA-2000-02. The vulnerability was found in the request with id 3385. New URL found by discovery: http://localhost/ New URL found by discovery: http://localhost/test2.html New URL found by discovery: http://localhost/xst2.html New URL found by discovery: http://localhost/xst.html New URL found by discovery: http://localhost/test.html
И результат, сохраненный в results.html:
Подскажите запускаю gui w3af через 30 секунд теста прога тупо виснет и не реагирует не на что.Использую в Kali.В чем может быть проблема?
Была похожая проблема с wpscan'om. Попробуйте переустановить w3af, вдруг поможет:
apt-get install —reinstall w3af
При запуске выдавало ошибку, промучался с ней несколько часов, но понял в чем проблема.
«`
It seems that your Python installation does not have all the modules required by the w3af framework. For more information about how to install and debug dependency issues please browse to http://docs.w3af.org/en/latest/install.html
Traceback (most recent call last):
File «/usr/bin/w3af», line 151, in
_main()
File «/usr/bin/w3af», line 147, in _main
sys.exit(main())
File «/usr/bin/w3af», line 142, in main
return console.sh()
File «/usr/share/w3af/w3af/core/ui/console/console_ui.py», line 145, in sh
self._context = rootMenu(name, self, self._w3af)
File «/usr/share/w3af/w3af/core/ui/console/rootMenu.py», line 70, in __init__
‘kb’: kbMenu
File «/usr/share/w3af/w3af/core/ui/console/util.py», line 26, in mapDict
fun(p, dct[p])
File «/usr/share/w3af/w3af/core/ui/console/menu.py», line 110, in addChild
name, self._console, self._w3af, self, *params)
File «/usr/share/w3af/w3af/core/ui/console/exploit.py», line 47, in __init__
plugin = self._w3af.plugins.get_plugin_inst(‘attack’, plugin_name)
File «/usr/share/w3af/w3af/core/controllers/core_helpers/plugins.py», line 247, in get_plugin_inst
plugin_inst = factory(‘w3af.plugins.%s.%s’ % (plugin_type, plugin_name))
File «/usr/share/w3af/w3af/core/controllers/misc/factory.py», line 62, in factory
__import__(module_name)
File «/usr/share/w3af/w3af/plugins/attack/sqlmap.py», line 37, in
from w3af.plugins.attack.db.sqlmap_wrapper import Target, SQLMapWrapper
File «/usr/share/w3af/w3af/plugins/attack/db/sqlmap_wrapper.py», line 33, in
from w3af.core.controllers.daemons.proxy import Proxy
File «/usr/share/w3af/w3af/core/controllers/daemons/proxy/__init__.py», line 1, in
from .handler import ProxyHandler
File «/usr/share/w3af/w3af/core/controllers/daemons/proxy/handler.py», line 25, in
from netlib.odict import ODictCaseless
ImportError: No module named odict
«`
Проблема заключалась в новой версии mitmproxy
После установки
`pip install mitmproxy==0.17
`
все стало хорошо и ошибка пропала