|
w3af 的用教图形界面启动后,左侧一栏是用教目标地址输入框,右侧是用教插件配置区。我第一次用它扫一个内部测试站,用教点了开始,用教三分钟没动静。用教后来发现默认配置只开了几个基础插件,用教爬虫都没跑起来。用教这工具不像 AWVS 那样开箱即用,用教得先摸清它的用教插件体系。 核心就两块:crawl(爬取)和 audit(审计)。用教crawl 负责找 URL、用教表单、用教参数,用教audit 负责往这些入口灌 payload。用教很多人上来就勾一堆 audit 插件,结果爬虫没爬到几个链接,扫了个寂寞。我的习惯是先把 crawl 下的 web_spider 和 google_spider 配好,确认目标站点结构被完整抓下来,再开 audit。 命令行模式更顺手。比如: w3af_console profiles use web_audit target set http://testphp.vulnweb.com back start 这套流程跑下来,控制台会实时打印发现的漏洞。SQL 注入、XSS、文件包含这些常见问题,w3af 的 payload 库覆盖得还行。但误报也有——有次它报了一个 XSS,我手动验证发现是页面把用户输入原样输出在 <script> 标签外,浏览器根本不执行。所以扫描结果得人工过一遍。 插件配置里有个细节容易忽略:mangle 插件。它负责对参数做变形,比如大小写混写、URL 编码、双重编码。有些 WAF 规则写得粗,mangle 一开就能绕过。但 mangle 开太多会导致请求量暴涨,扫大站时容易把对方打挂。我一般只开 url_encode 和 random_case 两个。 再说说认证扫描。很多漏洞在登录后才出现,w3af 支持配置 HTTP 认证和表单登录。在 auth 插件里填好登录 URL、用户名密码字段名、提交方式,它就能维持会话。但有个坑:如果目标站用 CSRF token,w3af 的 auth 插件默认不处理,得自己写脚本或者用 cookie 导入功能绕过。 性能方面,w3af 的并发线程数在 http_settings 里调。默认好像是 10,扫大站可以拉到 30-50。但别拉太高,有些老服务器扛不住,直接 502。我吃过一次亏,把一台测试机扫重启了,运维找上门来。 报告输出支持 HTML、PDF、XML。HTML 报告排版一般,但胜在信息全——每个漏洞都有请求和响应原文,复现方便。PDF 报告要装 wkhtmltopdf,否则生成出来是空白,这个坑我踩过两次。 最后说个实际案例。之前扫一个 Java 站,w3af 报了个任意文件读取,payload 是 ?file=../../../../etc/passwd。手动验证确实能读。但换成 ?file=../../../../etc/shadow 就 403 了。说明权限控制有,但不严。这种半吊子修复在真实环境里太常见了,扫描器能发现,但利用深度得靠人判断。 w3af 更新不算勤,社区版有些插件年久失修。但它的插件架构清晰,自己改改 payload 列表就能适配新漏洞。比起商业扫描器,它更像一把需要自己磨的刀。用顺了,比那些黑盒工具趁手。 |