本文共 1050 字,大约阅读时间需要 3 分钟。
OSS简单可以理解为企业自身的文件存储服务器。问题出在站点的上传功能,存在任意文件上传,但因为上传到的是oss或文件存储服务器,所以不论是什么类型的脚本都是不解析的,访问会直接下载回来,那作为开发者会高枕无忧了吗?然并卵,我还可以上传一个内容存在xss payload的hack.html的文件,服务器便会静态文件进行解析;重点来了,可能企业在使用oss服务时,使用的域名是img-oss.yourcompanydomain.com,而在你公司的sso或产品为了跨域在开发时set-cookie:*.yourcompanydomain.com,那攻击者就可以拿着img-oss.yourcompanydomain.com/hack.html找对应的场景或发给公司的员工,打开后cookie可能就被“借”走了。
总结两点:
任意文件上传;
站点可以跨域
总结两点:
任意文件上传;
站点可以跨域
0x01:
set-cookie0x02:
文件上传,前端验证
先上传图片,然后通过bp抓包,修改后缀为html,进行上传
访问即可打印弹出cookie
0x01:
在上传文件时不仅会校验文件后缀,在后端也会校验文件头
0x02:
绕过上传
上传后的response
html上传成功,发现其setcookie也是该业务系统全域名的,但使用的oss服务是阿里的oss相关域名isvstore.oss-cn-hangzhou.aliyuncs.com,不是使用其业务系统的域名,这样这两个域名之间是不能相互跨域的,但aliyuncs.com这个域名如果有业务系统,可能也会被利用。但在我测试过之后发现aliyuncs.com这个域名没有业务系统。所以没有影响,才在这里列出来。
但问题是相通的。
后端校验文件后缀类型;
牛逼点对文件进行重绘;
oss接口开发key管理部分,不同的key可以配置不同类型文件上传权限(服务端改key即可);
在使用oss时,最好申请一个专用的域名提供文件服务器使用。
除了html,你是否知道还有一种文件在特殊场景下会被利用呢?那就是shtml!
shtml用的是SSI指令,SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。
//可以用来读文件
//可以用来执行命令
//也是读文件 与FILE不同他支持绝对路径和../来跳转到父目录 而file只能读取当前目录下的
转载地址:http://utdkx.baihongyu.com/