未经许可,不得转载。
文章目录
正文
Azure Digital Twins 是一个微软下的平台服务,允许开发者创建和运行数字孪生模型,这些模型能够反映物理世界中的实体及其关系,通过这些模型可以进行监控、分析和预测等操作。
1、进入主页面,创建一项新的数字孪生服务:

2、打开 Azure 数字孪生资源管理器:

3、点击3D场景按钮:

4、此时,存在一请求包如下图:

可以看到名为X-Blob-Host 的自定义标头被设置为未定义。
5、对应的返回包如下图:

由于内部服务器错误 500 ,暴露了应用程序的各种依赖项和文件。
6、出于特殊性,修改X-Blob-Host

返回包如下:

可以看到,我们提供了一个 blob,由于后端代码检测,导致服务器的请求(getaddrinfo) 错误。
7、在 Github 中检索与数字孪生服务相关的各种文件后,发现一个BlobAdapter.ts文件中似乎存在类似功能,关键代码如下:


解读:blobHostUrl设置为请求标头中设置的内容(即req.headers['x-blob-host']);后端验证BlobHostUrlObject标头是否以blob.core.windows.net后缀结尾
由于blobHostUrl可控,因此可构造参数内容如下:

其中, | 用于绕过。
响应包及Collaborator如下图:
原文出处:
https://orca.security/resources/blog/ssrf-vulnerabilities-azure-digital-twins/