从攻防角度看oss安全(二)

  • A+
所属分类:安全文章

OSS简单可以理解为企业自身的文件存储服务器。问题出在站点的上传功能,存在任意文件上传,但因为上传到的是oss或文件存储服务器,所以不论是什么类型的脚本都是不解析的,访问会直接下载回来,那作为开发者会高枕无忧了吗?然并卵,我还可以上传一个内容存在xss payload的hack.html的文件,服务器便会静态文件进行解析;重点来了,可能企业在使用oss服务时,使用的域名是img-oss.yourcompanydomain.com,而在你公司的sso或产品为了跨域在开发时set-cookie:*.yourcompanydomain.com,那攻击者就可以拿着img-oss.yourcompanydomain.com/hack.html找对应的场景或发给公司的员工,打开后cookie可能就被“借”走了。

总结两点:

  1. 任意文件上传;

  2. 站点可以跨域

总结两点:

  1. 任意文件上传;

  2. 站点可以跨域

案例复现

案例一:

0x01:
set-cookie

从攻防角度看oss安全(二)

0x02:

文件上传,前端验证

先上传图片,然后通过bp抓包,修改后缀为html,进行上传

从攻防角度看oss安全(二)

访问即可打印弹出cookie

案例二:

0x01:

在上传文件时不仅会校验文件后缀,在后端也会校验文件头

从攻防角度看oss安全(二)

0x02:

绕过上传

从攻防角度看oss安全(二)

上传后的response

从攻防角度看oss安全(二)

html上传成功,发现其setcookie也是该业务系统全域名的,但使用的oss服务是阿里的oss相关域名isvstore.oss-cn-hangzhou.aliyuncs.com,不是使用其业务系统的域名,这样这两个域名之间是不能相互跨域的,但aliyuncs.com这个域名如果有业务系统,可能也会被利用。但在我测试过之后发现aliyuncs.com这个域名没有业务系统。所以没有影响,才在这里列出来。

但问题是相通的。

传统解决方案

  1. 后端校验文件后缀类型;

  2. 牛逼点对文件进行重绘;

针对oss解决方案

  1. oss接口开发key管理部分,不同的key可以配置不同类型文件上传权限(服务端改key即可);

  2. 在使用oss时,最好申请一个专用的域名提供文件服务器使用。


除了html,你是否知道还有一种文件在特殊场景下会被利用呢?那就是shtml!

shtml用的是SSI指令,SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。

<!--#include file="/home/www/user7511/nav_foot.htm"--> //可以用来读文件

<!--#exec cmd="ifconfig"--> //可以用来执行命令

<!--#include virtual="/includes/header.html" --> //也是读文件 与FILE不同他支持绝对路径和../来跳转到父目录 而file只能读取当前目录下的


本文始发于微信公众号(飓风网络安全):从攻防角度看oss安全(二)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: