【全网首篇】Copyparty 路径遍历漏洞 CVE-2023-37474 漏洞分析

图片


Copyparty是一个便携式文件服务器

Copyparty 路径遍历漏洞 CVE-2023-37474 漏洞分析,这个漏洞研究了一些时间,不过这个不难

漏洞复现分析环境

Copyparty测试版本:1.8.0和1.8.2

系统:Windows10 和 Linux

运行环境:Python3.11

漏洞分析

拿到程序,发现从代码的角度来看,代码量很小

图片

可以看见就300行左右

看一下文件还是挺大的

图片

估计其他的好多需要的库都存在下面的注释里面

启动程序,看见启动日志里面有一个临时文件

图片

发现确定是叫代码放到了那个注释里面,然后叫这个运行代码放到了临时文件里面

图片

看见里面有源码我们开始分析

然后搜索看到了发现一个很可能会存在的漏洞地方

图片

然后拿到路径后进入self.tx_file(static_path)

图片

传给这个变量

图片

图片

图片

open_func(*open_args) 使用了 * 操作符,它将 open_args 列表中的元素解包成单独的参数,然后传递给 open_func 函数,最终读取文件造成了这个漏洞

图片

看一下修复的代码

修复后的代码先创建了一个 path_base 变量,用来存储静态文件所在目录的绝对路径,然后使用 os.path.join() 将 path_base 和 self.vpath[5:] 进行拼接,得到静态文件的完整路径 static_path。接着,通过 absreal() 函数确保 static_path 是绝对路径,最后使用 startswith() 方法检查 static_path 是否以 path_base 开头,如果不是,说明存在路径遍历漏洞,记录日志并返回 404 错误页面。

漏洞POC

curl -i -s -k -X  GET 'http://127.0.0.1:3923/.cpr/%2Fetc%2Fpasswd'

图片

漏洞修复

  • • 将 copyparty 升级至 1.8.2 及以上版本

文末

关注公众号"知攻善防实验室",后台回复"交流群"获取技术交流群链接

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值