安全RCE之未授权访问分析(30)
2023-05-02 来源:飞速影视
根据注释这里应该是走了静态文件处理,调用的ServeExisting定义为
func (s *Static) ServeExisting(prefix urlprefix.Prefix, cache CacheMode, notFoundHandler http.Handler) http.Handler
第三个参数是notFoundHandler,调用这个Handler最终会层层调用到定义在上方内容为的uploadAccelerateProxy,看到这里就和触发流程一连接起来了。不过这里传入的处理中间件为SkipRailsAuthorizer,转入查看的定义:
// SkipRailsAuthorizer实现了一个假的PreAuthorizer,它不调用rails API// 每次调用进行本地授权上传到TempPath中type SkipRailsAuthorizer struct { // TempPath is the temporary path for a local only upload TempPath string}// PreAuthorizeHandler实现了PreAuthorizer. 其中并没有与rails进行交互。func (l *SkipRailsAuthorizer) PreAuthorizeHandler(next api.HandleFunc, _ string) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { next(w, r, &api.Response{TempPath: l.TempPath}) })}
从说明和代码中可以看出中直接调用了next来进行下一步的上传准备操作,并没有进行任何鉴权。其中指定了一个上传的目录为uploads/tmp。
首先我们在文件中携带payloadecho 2 > /tmp/rce.txt,使用curl发起请求
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号