引言
Wapiti是一款开源的Web应用漏洞扫描工具,它通过"黑盒"测试方式,向目标网站发送大量请求,通过分析响应内容来检测潜在的安全漏洞。本文将全面介绍Wapiti 3.2.10的安装、配置和使用方法。
一、安装Wapiti
1.1 系统要求
- Python 3.6或更高版本
- pip包管理器
- 可选:Firefox浏览器(用于headless模式)
1.2 安装方法
通过pip安装:
bash
pip install wapiti3
从源码安装:
bash
git clone https://github.com/wapiti-scanner/wapiti.git
cd wapiti
python setup.py install
在Kali Linux中:
bash
sudo apt-get update
sudo apt-get install wapiti

二、基础使用
2.1 最简单的扫描
bash
wapiti -u https://example.com
这将对目标网站进行基础扫描,使用默认设置。
2.2 指定扫描模块
bash
wapiti -u https://example.com -m xss,sql,exec
可用的模块包括:xss(跨站脚本)、sql(SQL注入)、exec(命令执行)、csrf(跨站请求伪造)等。
三、核心参数详解
3.1 目标URL配置
-u, --url URL:指定扫描目标的基础URL--swagger URI:使用Swagger文件定义API端点--data data:指定POST请求的数据
3.2 扫描范围控制
bash
# 仅扫描特定URL
wapiti -u https://example.com --scope url
# 扫描整个页面及子页面
wapiti -u https://example.com --scope page
# 扫描整个文件夹
wapiti -u https://example.com --scope folder
# 扫描整个子域名
wapiti -u https://example.com --scope subdomain
# 扫描整个域名
wapiti -u https://example.com --scope domain
# 扫描所有相关域名
wapiti -u https://example.com --scope punk
3.3 深度和强度控制
bash
# 设置爬取深度
wapiti -u https://example.com -d 3
# 设置攻击等级(默认1,最高2)
wapiti -u https://example.com -l 2
# 控制扫描力度
wapiti -u https://example.com -S aggressive
# 可选值:paranoid, sneaky, polite, normal, aggressive, insane
3.4 认证配置
HTTP基础认证:
bash
wapiti -u https://example.com --auth-user admin --auth-password secret --auth-method basic
表单登录认证:
bash
wapiti -u https://example.com --form-url https://example.com/login --form-user admin --form-password secret
使用浏览器Cookies:
bash
# 从Firefox导入cookies
wapiti -u https://example.com -c firefox
# 使用自定义cookie文件
wapiti -u https://example.com -c cookies.json
3.5 代理和网络配置
bash
# 使用HTTP代理
wapiti -u https://example.com -p http://127.0.0.1:8080
# 使用Tor网络
wapiti -u https://example.com --tor
# 设置超时时间
wapiti -u https://example.com -t 10
# 设置并发任务数
wapiti -u https://example.com --tasks 10
3.6 Headless模式
bash
# 可见模式
wapiti -u https://example.com --headless visible
# 隐藏模式
wapiti -u https://example.com --headless hidden
# 等待页面加载
wapiti -u https://example.com --headless visible --wait 5
四、高级功能
4.1 会话管理
bash
# 存储会话
wapiti -u https://example.com --store-session ./session
# 恢复会话
wapiti -u https://example.com --resume-crawl
# 清空攻击历史
wapiti -u https://example.com --flush-attacks
# 清空所有会话数据
wapiti -u https://example.com --flush-session
4.2 自定义请求
bash
# 添加自定义头部
wapiti -u https://example.com -H "X-Forwarded-For: 127.0.0.1"
# 设置User-Agent
wapiti -u https://example.com -A "Mozilla/5.0 Custom"
# 排除特定URL
wapiti -u https://example.com -x /admin
# 移除特定参数
wapiti -u https://example.com -r sessionid
# 跳过攻击特定参数
wapiti -u https://example.com --skip csrf_token
4.3 日志和报告
bash
# 生成HTML报告
wapiti -u https://example.com -o report.html -f html
# 生成JSON报告
wapiti -u https://example.com -o report.json -f json
# 包含请求和响应详情
wapiti -u https://example.com -dr 2
# 启用详细日志
wapiti -u https://example.com -v 2 --log scan.log
4.4 性能优化
bash
# 限制每个页面的链接数
wapiti -u https://example.com --max-links-per-page 50
# 限制每个目录的文件数
wapiti -u https://example.com --max-files-per-dir 100
# 限制最大参数数
wapiti -u https://example.com --max-parameters 50
# 设置总扫描时间限制
wapiti -u https://example.com --max-scan-time 3600
# 设置单个模块攻击时间限制
wapiti -u https://example.com --max-attack-time 600
五、实战示例
5.1 WordPress站点扫描
bash
wapiti -u https://wordpress-site.com --cms wp -m xss,sql,exec -d 3 -S aggressive
5.2 API端点测试
bash
wapiti -u https://api.example.com --swagger /path/to/swagger.json -m xss,sql,exec
5.3 认证扫描
bash
wapiti -u https://secure-site.com -c chrome --form-url https://secure-site.com/login --form-user user --form-password pass -m xss,sql,exec -o scan_report.html
5.4 深度审计
bash
wapiti -u https://audit-target.com --scope domain -d 5 -S insane -m all -o full_audit.html -v 2 --max-scan-time 7200
六、常见问题与解决方案
6.1 SSL证书验证
bash
# 禁用SSL验证(不推荐用于生产环境)
wapiti -u https://example.com --verify-ssl 0
6.2 Cookie处理
bash
# 忽略Set-Cookie头
wapiti -u https://example.com --drop-set-cookie
# 使用特定Cookie值
wapiti -u https://example.com -C "sessionid=abc123; token=xyz789"
6.3 故障排除
bash
# 查看可用模块
wapiti --list-modules
# 更新Wapiti
wapiti --update
# 查看版本信息
wapiti --version
七、最佳实践建议
-
扫描前准备:
- 获得授权
- 测试环境优先
- 了解目标应用
-
扫描策略:
- 从低强度开始
- 逐步增加扫描深度
- 合理设置超时时间
-
结果验证:
- 人工复核关键发现
- 避免误报
- 区分漏洞严重程度
-
性能考虑:
- 控制并发数
- 限制扫描时间
- 分批处理大型应用
结论
Wapiti 3.2.10是一款功能强大的Web应用漏洞扫描工具,它提供了丰富的配置选项,可以适应各种扫描场景。通过本文的详细介绍,您应该能够充分掌握Wapiti的使用方法,有效地进行Web应用安全审计。记住在使用时始终遵守法律法规,获得必要的授权,并以负责任的方式进行安全测试。