HTTP Traceroute
这个项目最初是作为对@christruncer优秀工具EyeWitness的扩展构想而诞生的。其核心功能很简单:获取一个包含重定向的URL,追踪所有重定向步骤直至最终目标页面。在每次跳转过程中,工具会完成以下工作:
- 显示所有响应头信息
- 收集各阶段Cookie
- 标记包含大体积响应体的重定向
- 对无效SSL证书发出警告
- 提供Cookie保存功能以便后续回放测试
技术实现细节
虽然功能需求并不复杂,但这个项目成为我练习使用Ruby的net/http库的良好实践。Cookie处理通过CookieJar库实现,但由于该库存在若干缺陷(我已提交修复补丁但尚未被合并),目前代码中直接包含了我修改后的库版本。
关键功能点:
- Cookie管理:所有Cookie以JSON格式存储,支持人工查看/修改后回放测试,特别适用于需要首次访问设置Cookie的网站场景
- 代理支持:可配置代理通过Burp Suite等工具进行流量分析
- 安全检测:
- 自动验证HTTPS证书有效性
- 对超过默认500字节的重定向响应体发出警告(可调整阈值)
- 防护机制:默认限制10次重定向以防循环跳转(可调整)
示例输出
|
|
完整输出展示了包含302→301→302→200的状态码跳转链,共收集6个Cookie(含Session/Persistent类型及HTTPOnly/Secure标记),并检测到red3.php存在异常大体积响应体。
JSON存储示例
|
|
存储的Cookie数据采用结构化JSON格式,便于二次处理和分析。
版本下载
- 2016-02-28 HTTP Traceroute 1.1
- 2014-11-01 HTTP Traceroute 1.0