Wapiti 这名字取得挺有意思,洞检麋鹿。查工它跑起来不算快,洞检但犄角能掀开不少东西。查工我第一次用它扫一个客户的洞检老旧后台,十分钟不到,查工控制台就吐出一串警告:SQL注入、洞检XSS、查工文件包含。洞检当时客户就坐在旁边,查工脸色不太好看。洞检
这工具是查工 Python 写的,开源,洞检跑在命令行里。查工没有花哨的洞检界面,也没有那种“一键修复”的假承诺。它做的事很纯粹——爬取目标站点的链接和表单,然后往这些入口里塞各种恶意载荷,看服务端会不会给出异常回应。说白了,就是个自动化的“找茬机器”。
Wapiti 的官方仓库在 GitHub 上,直接搜 “wapiti-scanner” 就能找到。别去那些乱七八糟的下载站,很多捆绑了挖矿脚本。源码包和 pip 安装两种方式,我更推荐 pip:
pip install wapiti3 注意包名是 wapiti3,不是 wapiti。老版本早就停更了,现在活跃的是 3.x 分支。装完之后终端敲 wapiti --version,能看见版本号就说明成了。Windows 用户如果遇到依赖报错,多半是缺少 Visual C++ 运行库,装个 build tools 就能解决。
官方文档列了二十多种漏洞模块,但实际用下来,最靠谱的是这几类:SQL 注入、跨站脚本、命令执行、文件包含、SSRF。每个模块可以单独启用或禁用,比如你只想测 XSS,就加 -m xss。想全开也行,但扫描时间会拉长,而且误报率会上去。
有个细节值得说:Wapiti 默认会先爬站,把 URL 和表单参数都收集起来。如果目标站点有反爬或者登录墙,你得手动喂它一个包含 cookie 的文件,或者用 --auth 参数传凭证。不然它连门都进不去,扫个寂寞。
拿一个测试环境举例:
wapiti -u http://testphp.vulnweb.com/ -f html -o report.html 这里 -u 指定目标,-f 是报告格式,-o 是输出文件。跑完之后打开 report.html,会看到按风险等级分类的漏洞列表。每个漏洞下面有请求报文和响应片段,方便你手动验证。我习惯先看高危,再看中危,低危的基本是信息泄露,扫一眼就过。
速度方面,单线程扫一个中小型站点大概十几分钟。想快就加 --max-scan-time 限制时间,或者用 -t 调并发。但并发太高容易把目标打挂,尤其是那些老旧的 IIS 服务器。我吃过一次亏,把客户的生产环境扫出了 502,后来只敢在测试环境跑。
Wapiti 对 JavaScript 渲染的页面基本无能为力。如果目标站是 Vue 或 React 写的,爬虫抓不到动态生成的链接,扫描结果会少得可怜。这时候得配合 Selenium 或者手动提供 URL 列表。
另外,它的误报率不算低。尤其是 XSS 模块,有时候只是把参数原样反射回来,并没有真正执行,它也会报。所以报告里的每一个漏洞,都得人工复核。别直接拿报告去跟开发对线,容易被打脸。
还有一个坑:默认的 User-Agent 是 “Wapiti”,很多 WAF 会直接拦截。加个 --user-agent "Mozilla/5.0" 能绕过一部分。但别用来干坏事,这工具是给你测自己系统的。
Wapiti 不是银弹。它适合在开发阶段做快速自查,或者渗透测试的初期信息收集。真要靠它挖出深层次的逻辑漏洞,不现实。但作为一款免费、开源、持续维护的扫描器,它值得放在你的工具箱里。下载完,找个靶场练练手,比看十篇教程都管用。