当前位置: 首页 > news >正文

libcurl FTP路径规范化漏洞解析:编码%2e%2e导致目录穿越

libcurl FTP路径规范化漏洞分析

漏洞概述

libcurl在处理FTP路径时存在安全漏洞,FTP路径中的URL编码序列%2e%2e被解码为..后,未进行规范化路径处理,导致攻击者可通过特制URL实现目录穿越(Path Traversal)。

技术细节

漏洞位置

ftp_parse_url_path函数位于lib/ftp.c中,该函数:

  • 对FTP路径段进行URL解码(如%2e%2e
  • 使用特定循环将解码后的路径分割为组件
  • 跳过由//产生的空组件
  • 未执行规范化路径处理(无基于堆栈的...处理)

漏洞原理

编码的遍历序列如%2e%2e解码为..后,成为正常路径组件,导致libcurl向远程FTP服务器发送CWD ..命令。这使得在攻击者能够向使用libcurl的应用程序提供FTP URL的情况下,可实现客户端驱动的目录遍历。

受影响版本

curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0

复现步骤

环境准备

mkdir -p ~/curl-test/dir ~/curl-test/testdir
echo "INSIDE" > ~/curl-test/dir/inside.txt
echo "OUTSIDE" > ~/curl-test/testdir/outside.txt
cd ~/curl-test

启动FTP服务器

python3 -m pip install pyftpdlib
python3 -m pyftpdlib -w

执行漏洞利用

curl --trace-ascii curl_trace.txt -v "ftp://127.0.0.1:2121/dir//%2e%2e/testdir" 2>&1 | tee curl_stdout.txt

跟踪结果

curl_trace.txt中观察到的CWD命令:

CWD dir
< 250 "/dir" is the current directory.
CWD ..
< 250 "/" is the current directory.

影响分析

安全弱点

  • 路径遍历(CWE-22)
  • 不当输入验证(CWE-20)

攻击场景

  1. 远程文件泄露:攻击者可构造URL使libcurl遍历到父目录并尝试访问预期目录外的文件
  2. 客户端过滤器绕过:执行简单清理(如搜索字面..)的应用程序可被编码等效项(%2e%2e)绕过
  3. 供应链和自动化滥用:自动处理FTP URL的软件可能被诱骗获取或覆盖允许区域外的文件

严重程度

建议严重性:高
CVSS示例向量:AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N → CVSS ~7.x

修复建议

  1. 在URL解码后、分割路径组件前执行规范化路径处理(基于堆栈的./..处理,合并//
  2. 拒绝尝试遍历允许根目录之上的路径(返回错误而非发送CWD)
  3. 为编码遍历案例和混合排列添加单元测试

项目方回应

curl维护者确认:

  • 该问题在curl 8.13.0及以后版本中已修复
  • 允许攻击者控制URL本身就存在安全风险
  • 适当的目录保护应在服务器端实现,不能依赖客户端保护
  • 使用--path-as-is参数时curl允许此行为

报告状态:不适用,不被视为安全问题
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.gsyq.cn/news/53981.html

相关文章:

  • 2025 最新推荐修脚加盟品牌榜单:国际协会测评认证,非遗技艺 + 成熟运营体系优选指南修脚加盟培训 / 足疗修脚加盟 / 采耳修脚加盟 / 修脚培训加盟公司推荐
  • 2025年热门的烟台包装用户口碑最好的厂家榜
  • 算一算你的一餐,为地球“减负”多少?
  • 水平高的北京海淀区婚姻律师行业观察与参考
  • 2025年比较好的设计师集成阻尼铰链厂家最新权威推荐排行榜
  • 2025 年最新推荐打印贴标机厂家权威排行榜:自动/在线/实时/条码/智能/防爆/称重/平面打印贴标机公司推荐
  • 2025年评价高的聚氨酯发泡保温管道厂家推荐及选购指南
  • 2025 最新打印贴标一体机厂家口碑推荐榜:国际测评认证,覆盖多品类精准适配企业生产需求称重打印贴标一体机/实时打印贴标一体机/标签打印贴标一体机/条码打印贴标一体机/模块化打印贴标一体机公司推荐
  • 2025年11月离婚纠纷律师推荐评价:行业榜单与详细对比解析
  • 2025年质量好的玻璃钢夹砂排污管道优质厂家推荐榜单
  • C++之类和对象(上)(多例子详解this指针以及封装特性的初步引入) - 指南
  • 2025年11月中国遗产继承律师评价榜:从资质到案例的实战能力解析
  • 错题整理
  • 2025年靠谱的孤立导体测试仪厂家最新权威实力榜
  • P5256 [JSOI2013] 编程作业 个人题解
  • 2025年11月低空感知平台解决方案商推荐排行:中立评估与实用建议
  • 2025年质量好的昆明泡沫包装箱行业内知名厂家排行榜
  • 掌握数据手册:阅读数据手册综合指南
  • linux c读写文件
  • AI模型数据安全:别让“聪明的大脑”变成安全黑洞
  • 超大文件怎么发邮件:打破限制的安全传输解决方案
  • 2025年11月生成式引擎优化推荐:十大服务商技术实力与行业应用全景分析
  • 2025年靠谱的工业净化铝材厂家实力及用户口碑排行榜
  • 2025年口碑好的硬齿面减速机高评价厂家推荐榜
  • 【IO编程与异常】内存泄露 vs 资源泄露:为什么Python有GC还需要关闭文件/用`with`打开?
  • 2025年比较好的耐硫酸涂层厂家推荐及选购参考榜
  • MATLAB R2025a:科研工程全能工具箱,从数据处理到算法部署,安装覆盖科研全链路
  • 2025年知名的工业转子泵厂家推荐及选择指南
  • 串口通讯中关于事件模式、单独线程轮询以及使用 BaseStream浅见
  • 2025年靠谱的酸洗重防腐涂料厂家最新权威推荐排行榜