
Пассивный и активный сканер уязвимостей веб-приложений с обнаружением на основе плагинов для XSS, SQL-инъекций, внедрения команд и раскрытия конфиденциальных файлов. Поддерживает режим прокси и интеграцию автоматического сканирования.
W13scan — это инструмент для обнаружения веб-уязвимостей с открытым исходным кодом на Python3. Он поддерживает активный и пассивный режимы сканирования и работает на Windows, Linux и Mac.

Исходный код HTML-шаблона: w13scan-report
Перед использованием W13Scan соблюдайте местные законы. W13Scan предоставляется только для образовательных целей.
По сравнению с другими профессиональными инструментами сканирования, w13scan также имеет свои уникальные преимущества.
Специалисты по безопасности вряд ли доверят любой программе; единственное, чему можно хоть немного доверять, — это открытый исходный код.
Безопасность строится на доверии, а доверие требует открытости и прозрачности. Основной код w13scan полностью открыт, любой желающий может проверить его безопасность.
Его можно легко адаптировать для сложных и узкоспециализированных сред, дополняя функционал в соответствии с документацией разработчика w13scan и настраивая необходимые модули.
W13scan был протестирован на нескольких платформах. Ниже приведены отчёты о тестировании.
| Платформа | Результаты сканирования | Режим сканирования |
|---|---|---|
| WVS PHP Vulnweb | Посмотреть | crawlergo+w13scan автоматическое |
| WVS AJAX Vulnweb | Посмотреть | Пассивное |
| demo.aisec.cn | Посмотреть | Пассивное |
usage: w13scan [options]
optional arguments:
-h, --help show this help message and exit
-v, --version Show program's version number and exit
--debug Show programs's exception
--level {1,2,3,4,5} different level use different payload: 0-5 (default 2)
Proxy:
Passive Agent Mode Options
-s SERVER_ADDR, --server-addr SERVER_ADDR
server addr format:(ip:port)
Target:
options has to be provided to define the target(s)
-u URL, --url URL Target URL (e.g. "http://www.site.com/vuln.php?id=1")
-f URL_FILE, --file URL_FILE
Scan multiple targets given in a textual file
Request:
Network request options
--proxy PROXY Use a proxy to connect to the target URL
eg:[email protected]:8080 or [email protected]:1080
--timeout TIMEOUT Seconds to wait before timeout connection (default 30)
--retry RETRY Time out retrials times.
Output:
output
--html When selected, the output will be output to the output
directory by default, or you can specify
--json JSON The json file is generated by default in the output
directory, you can change the path
Optimization:
Optimization options
-t THREADS, --threads THREADS
Max number of concurrent network requests (default 31)
--disable DISABLE [DISABLE ...]
Disable some plugins (e.g. --disable xss sqli_error
webpack)
--able ABLE [ABLE ...]
Enable some moudle (e.g. --enable xss webpack)
Для установки w13scan требуется Python 3.6 или выше.
git clone https://github.com/w-digital-scanner/w13scan.git
cd w13scan # перейти в каталог git
pip3 install -r requirements.txt
cd W13SCAN # перейти в каталог исходного кода
python3 w13scan.py -h
python3 w13scan.py -s 127.0.0.1:7778 --html # порт можно не указывать, по умолчанию 7778; --html включает генерацию HTML-отчёта в реальном времени
Если вы хотите, чтобы пассивный режим w13scan поддерживал HTTPS, сначала запустите w13scan, затем в браузере перейдите по адресу http://w13scan.ca, скачайте сертификат и доверьте ему.
-u сканировать один URL
--file читать URL из файла для сканирования
W13scan анализирует параметры URL и сканирует с помощью плагинов, но не выполняет сканирование страниц.
В каталоге crawlergo_example файл spider.py демонстрирует, как интегрироваться с краулером crawlergo.
Измените настройки реверсивной платформы в config.py, например:
# REVERSE
USE_REVERSE = True # Включить реверсивную платформу: замените False на True
REVERSE_HTTP_IP = "127.0.0.1" # IP-адрес для обратного HTTP-соединения; замените на IP сервера, не используйте 0.0.0.0
REVERSE_HTTP_PORT = 9999 # Порт для обратного HTTP-соединения
REVERSE_DNS = "dnslog.w13scan.hacking8.com" # Замените на свой домен и настройте DNS-запись на IP сервера
REVERSE_RMI_IP = "127.0.0.1" # IP-адрес для обратного Java RMI-соединения; замените на IP сервера, не используйте 0.0.0.0
REVERSE_RMI_PORT = 10002 # Порт для обратного Java RMI-соединения
REVERSE_SLEEP = 5 # Задержка после обратного соединения при проверке, в секундах
Затем сначала запустите реверсивную платформу:
python3 reverse.py
После этого запустите w13scan.
W13scan имеет открытый исходный код, и мы приветствуем, если исследователи безопасности интегрируют его в свои сканеры.
Пожалуйста, ознакомьтесь с документацией разработчика.