Wapiti - Web 漏洞扫描器
Wapiti 是一个用 Python 编写的 Web 漏洞扫描器。
http://wapiti-scanner.github.io/
要求
为了正常工作,Wapiti 需要 Python 3.10 或 3.11
如果您使用 setup.py 脚本或 pip install wapiti3,所有 Python 模块依赖项将自动安装
有关安装的更多详细信息,请参阅 INSTALL.md。
在 Windows 上运行 Wapiti 可以通过使用 WSL 来完成。
它是如何运作的
Wapiti 充当“黑盒”漏洞扫描器,这意味着它不会研究 Web 应用程序的源代码,而是像模糊器一样工作,扫描已部署的 Web 应用程序的页面,提取链接和表单并攻击脚本,发送有效负载并查找错误消息、特殊字符串或异常行为。
一般特点
- 生成各种格式(HTML、XML、JSON、TXT、CSV)的漏洞报告。
- 可以暂停和恢复扫描或攻击(使用 sqlite3 数据库的会话机制)。
- 可以在终端中为您提供颜色以突出显示漏洞。
- 不同级别的冗长。
- 激活/停用攻击模块的快速简便的方法。
- 添加有效负载就像向文本文件添加一行一样简单。
- 可配置执行 HTTP 请求的并发任务数量。
浏览功能
- 支持 HTTP、HTTPS 和 SOCKS5 代理。
- 目标上的 HTTP 身份验证(基本、摘要、NTLM)
- 通过填写登录表格进行身份验证。
- 能够限制扫描范围(域、文件夹、页面、url)。
- 自动删除 URL 中的一个或多个参数。
- 针对扫描无限循环的多重保护措施(例如,参数值的限制)。
- 可以设置要探索的第一个 URL(即使不在范围内)。
- 可以排除一些URL的扫描和攻击(例如:注销URL)。
- 从 Chrome 或 Firefox 浏览器或使用 wapiti-getcookie 工具导入 cookie。
- 可以激活/停用 SSL 证书验证。
- 从 Flash SWF 文件中提取 URL。
- 尝试从 javascript(非常基本的 JS 解释器)中提取 URL。
- HTML5 感知(了解最近的 HTML 标签)。
- 用于控制爬网程序行为和限制的多个选项。
- 在攻击过程中跳过一些参数名称。
- 设置扫描过程的最长时间。
- 添加一些自定义 HTTP 标头或设置自定义用户代理。
- 使用Firefox无头浏览器进行爬行
- 为复杂的身份验证案例加载您自己的 python 代码(请参阅 --form-script 选项)
- 添加自定义 URL 或 PATH 来更新 Wappalyzer 数据库
- 扫描给定 OpenAPI (swagger) 文件的 REST API
支持的攻击
- SQL 注入(基于错误、基于布尔、基于时间)和 XPath 注入
- LDAP 注入(基于错误和基于布尔值)
- 跨站脚本 (XSS) 反映且永久
- 文件泄露检测(本地和远程include、require、fopen、readfile...)
- 命令执行检测(eval()、system()、passtru()...)
- XXE(Xml外部实体)注入
- CRLF注射
- 在服务器上搜索潜在危险的文件(感谢 Nikto db)
- 绕过弱 htaccess 配置
- 在服务器上搜索脚本的副本(备份)
- 炮弹休克
- 文件夹和文件枚举(类似 DirBuster)
- 服务器端请求伪造(通过使用外部 Wapiti 网站)
- 打开重定向
- 检测不常见的 HTTP 方法(如 PUT)
- 基本 CSP 评估器
- 暴力登录表单(使用字典列表)
- 检查 HTTP 安全标头
- 检查 cookie 安全标志(secure 和 httponly 标志)
- 跨站请求伪造 (CSRF) 基本检测
- 使用 Wappalyzer 数据库对 Web 应用程序进行指纹识别,提供相关的 CVE 信息
- Wordpress、Drupal、Joomla、SPIP 等 CMS 模块枚举
- 子域接管检测
- Log4Shell (CVE-2021-44228) 检测
- Spring4Shell (CVE-2020-5398) 检测
- 检查 https 重定向
- 检查文件上传漏洞
- 网络设备检测
- 也将有效负载注入 JSON 主体内
Wapiti 支持 GET 和 POST HTTP 方法进行攻击。它还支持多部分,并可以在文件名中注入有效负载(上传)。发现异常时显示警告(例如 500 个错误和超时) 区分永久性 XSS 漏洞和反射型 XSS 漏洞。
模块名称
上述攻击与以下模块名称相关:
- 备份(在网络服务器上搜索脚本和存档的副本)
- brute_login_form(使用字典列表的暴力登录表单)
- buster(类似 DirBuster 的模块)
- cms(扫描检测CMS及其版本)
- cookieflags(检查安全和 HttpOnly 标志)
- crlf(HTTP 标头中的 CR-LF 注入)
- csp(检测缺少 CSP 或 CSP 配置较弱)
- csrf(检测未针对 CSRF 进行保护或使用弱反 CSRF 令牌的表单)
- exec(代码执行或命令注入)
- 文件(路径遍历、文件包含等)
- htaccess(htaccess 限制配置错误)
- htp(识别使用 HashThePlanet 数据库的网络技术)
- http_header(检查 HTTP 安全标头)
- https_redirect(检查 https 重定向)
- ldap(基于错误和基于布尔的 LDAP 注入检测)
- log4shell(检测易受 CVE-2021-44228 影响的网站)
- 方法(查找不常见的可用 HTTP 方法,例如 PUT)
- network_device(查找常用文件来检测网络设备)
- nikto(通过测试 URL 是否存在并检查响应来查找已知漏洞)
- permanentxss(在 xss 模块执行后重新扫描整个目标,查找以前受污染的有效负载)
- 重定向(开放重定向)
- shellshock(测试Shellshock攻击,参见维基百科)
- spring4shell(检测易受 CVE-2020-5398 影响的网站)
- sql(基于错误和基于布尔的 SQL 注入检测)
- ssl(评估SSL/TLS证书配置的安全性,需要sslscan)
- ssrf(服务器端请求伪造)
- 接管(子域接管)
- timesql(使用基于时间的方法检测到的 SQL 注入漏洞)
- upload(文件上传漏洞)
- wapp(不是攻击模块,检索目标上使用的Web技术的版本和类别,查找相应的CVE)
- wp_enum(枚举 WordPress 网站上的插件和主题)
- xss(XSS注入模块)
- xxe(XML 外部实体攻击)
模块名称可以使用“-m”或“--module”选项以逗号分隔列表的形式给出。
如何获得最佳结果
要查找更多漏洞(因为某些攻击是基于错误的),您可以修改网络服务器配置。
例如,您可以在 PHP 配置中设置以下值:
安全模式=关闭
display_errors = 开(推荐)
magic_quotes_gpc = 关闭
允许 url_fopen = 开
mysql.trace_mode = 开
哪里可以获得帮助
在提示符中,只需键入以下命令即可获取基本用法:
马鹿-h
您还可以查看联机帮助页(wapiti.1 或 wapiti.1.html),了解有关每个选项的更多详细信息。
我们还有一个更详尽的官方 wiki:https://github.com/wapiti-scanner/wapiti/wiki
如果您还有其他问题,请先查看常见问题解答
如果您发现错误,请填写问题:https://github.com/wapiti-scanner/wapiti/issues
如何帮助马鹿项目
你可以 :
- 通过捐款支持该项目(http://sf.net/donate/index.php?group_id=168625)
- 创建或改进攻击模块
- 创建或改进报告生成器和模板
- 发送错误修复、补丁...
- 编写一些 GUI
- 创建一个将 PCAP 文件转换为 Wapiti sqlite3 会话文件的工具
- 谈论你身边的马鹿
许可
Wapiti 是根据 GNU 通用公共许可证版本 2(GPL)发布的。源代码可在 Github 上获取。
由尼古拉斯·苏里巴斯创建。
赞助商
网络观察 https://cyberwatch.fr/
每个人的安全 https://securityforeveryone.com/
免责声明
Wapiti 是一款网络安全软件。它对提供的目标执行安全评估,这可能会导致目标出现故障和崩溃,以及潜在的数据丢失。
未经主人事先同意,使用马鹿攻击目标是非法的。最终用户有责任遵守所有适用的当地法律。
开发人员和参与 Wapiti 项目的人员不承担任何责任,也不对该程序造成的任何误用或损坏负责。