Wapiti is a Free and Open-source Web Vulnerability Scanner

Wapiti is a Free and Open-source Web Vulnerability Scanner
Photo by Clint Patterson / Unsplash

Wapiti is a Python-based web vulnerability scanner that supports HTTP, HTTPS, and SOCKS5 proxies. It offers features such as HTTP authentication, form-based login authentication, scan scope limitation, automatic URL parameter removal, safeguards against endless-loops, and the ability to set initial URLs for exploration. It can also exclude certain URLs from scans, import cookies from Chrome or Firefox, verify SSL certificates, extract URLs from Flash SWF files and JavaScript, and is HTML5 compatible.

Wapiti operates as a "black-box" vulnerability scanner. Instead of analyzing the source code of web applications, it functions like a fuzzer. This means it scans the pages of the deployed web application, extracts links and forms, and attacks the scripts. It does this by sending payloads and checking for error messages, unique strings, or abnormal behaviors.

General features

  • Generates vulnerability reports in various formats (HTML, XML, JSON, TXT, CSV).
  • Can suspend and resume a scan or an attack (session mechanism using sqlite3 databases).
  • Can give you colors in the terminal to highlight vulnerabilities.
  • Different levels of verbosity.
  • Fast and easy way to activate/deactivate attack modules.
  • Adding a payload can be as easy as adding a line to a text file.
  • Configurable number of concurrent tasks to perform HTTP requests.

Browsing features

  • Support HTTP, HTTPS and SOCKS5 proxies.
  • HTTP authentication on the target (Basic, Digest, NTLM)
  • Authentication by filling login forms.
  • Ability to restrain the scope of the scan (domain, folder, page, url).
  • Automatic removal of one or more parameters in URLs.
  • Multiple safeguards against scan endless-loops (for example, limit of values for a parameter).
  • Possibility to set the first URLs to explore (even if not in scope).
  • Can exclude some URLs of the scan and attacks (eg: logout URL).
  • Import cookies from your Chrome or Firefox browser or using the wapiti-getcookie tool.
  • Can activate / deactivate SSL certificates verification.
  • Extract URLs from Flash SWF files.
  • Try to extract URLs from javascript (very basic JS interpreter).
  • HTML5 aware (understand recent HTML tags).
  • Several options to control the crawler behavior and limits.
  • Skipping some parameter names during attack.
  • Setting a maximum time for the scan process.
  • Adding some custom HTTP headers or setting a custom User-Agent.
  • Using a Firefox headless browser for crawling
  • Loading your own python code for complicated authentication cases (see --form-script option)

Supported attacks

  • SQL Injections (Error based, boolean based, time based) and XPath Injections
  • Cross Site Scripting (XSS) reflected and permanent
  • File disclosure detection (local and remote include, require, fopen, readfile...)
  • Command Execution detection (eval(), system(), passtru()...)
  • XXE (Xml eXternal Entity) injection
  • CRLF Injection
  • Search for potentially dangerous files on the server (thank to the Nikto db)
  • Bypass of weak htaccess configurations
  • Search for copies (backup) of scripts on the server
  • Shellshock
  • Folder and file enumeration (DirBuster like)
  • Server Side Request Forgery (through use of an external Wapiti website)
  • Open Redirects
  • Detection of uncommon HTTP methods (like PUT)
  • Basic CSP Evaluator
  • Brute Force login form (using a dictionary list)
  • Checking HTTP security headers
  • Checking cookie security flags (secure and httponly flags)
  • Cross Site Request Forgery (CSRF) basic detection
  • Fingerprinting of web applications using the Wappalyzer database
  • Enumeration of Wordpress and Drupal modules
  • Subdomain takeovers detection
  • Log4Shell (CVE-2021-44228) detection
  • Spring4Shell (CVE-2020-5398) detection
  • Check https redirections
  • Check for file upload vulnerabilities

Wapiti supports both GET and POST HTTP methods for attacks. It also supports multipart and can inject payloads in filenames (upload). Display a warning when an anomaly is found (for example 500 errors and timeouts) Makes the difference between permanent and reflected XSS vulnerabilities.

Platforms

  • Windows
  • Linux
  • macOS

License

Wapiti is released under the GNU General Public License version 2 (the GPL).

Resources

GitHub - wapiti-scanner/wapiti: Web vulnerability scanner written in Python3
Web vulnerability scanner written in Python3. Contribute to wapiti-scanner/wapiti development by creating an account on GitHub.







Open-source Apps

9,500+

Medical Apps

500+

Lists

450+

Dev. Resources

900+