curl漏洞报告:带空格前缀的-H参数与–proxy联用导致HTTP头注入
报告人: spongebhav
提交时间: 2024年11月25日
影响版本: curl 8.11.0 (macOS Sequoia 15.1)
漏洞描述
当curl同时使用-H "[space]header:value"
和--proxy
参数时,会导致HTTP头注入到前一个头部字段中。该行为仅在启用代理时出现。
复现步骤
|
|
技术细节
- 代理依赖:该行为仅在使用
--proxy
参数时出现 - 头部格式要求:注入需要满足
"[space]something:value"
格式 - 协议限制:仅影响HTTPS请求
- 文件输入:同样适用于
-H @file.txt
形式(文件内容以空格开头)
影响分析
- 可能导致服务器端错误日志记录
- 可能被用于构造畸形请求
- 当攻击者能控制输入文件或单个头字段时存在潜在风险
官方回应
curl团队认为这是文档化行为(HTTP/1头部折叠特性),但报告人通过自定义代理测试表明:
- 无效头部(如
-H "[space]abc"
)会被curl直接丢弃 - 头部拼接行为似乎由curl而非代理实现
相关讨论
报告人提供了Python代理测试代码,证明头部处理行为确实发生在curl层面:
|
|
最终状态
报告被标记为"Not Applicable",但披露以供社区参考。