W3af扫描时自定义请求头没生效,如何排查?

程序猿庆芳 阅读 27

最近在用W3af测试公司API,需要给所有请求加User-Agent和X-Token头。按照文档在setup.conf里设置了headers参数:


headers = {"User-Agent": "MyScanner/1.0", "X-Token": "abc123"}

但扫描时抓包发现请求头没带上这些,控制台还报错”Invalid header value type”。尝试过把双引号换成单引号、把参数写成列表形式都不行,折腾了一晚上没进展。是不是哪里配置格式错了?或者需要启用特定插件才能生效?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
Dev · 圣哲
这个问题我之前也踩过。你这个配置格式问题,W3af的setup.conf里headers参数要写成列表形式才能生效。官方文档里其实有说明,但很容易看漏。

推荐的做法是改成这样:
headers = [
('User-Agent', 'MyScanner/1.0'),
('X-Token', 'abc123')
]


字典格式确实会报"Invalid header value type"错误,因为框架底层处理时会检查类型。抓包没带请求头就是这个配置没生效导致的。

改完配置后记得开debug模式验证:
w3af -d


另外不需要启用插件,核心引擎自带这个配置项。建议升级到最新版w3af,配置格式更友好。
点赞 8
2026-02-06 17:48