oculus设备VR漫游
Posted aichitudousien
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oculus设备VR漫游相关的知识,希望对你有一定的参考价值。
@
概述
使用oculus设备开发一个漫游demo,具备在头显中使用遥感控制方向,左手控制器具备传送跳跃功能,导航网格的制作
如有不明白的可以加QQ:2354528292;wx: aichitudousien
更多教学视频请访问:https://space.bilibili.com/236087412
源码获取:https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.3c3a645e6Jz6my&ft=t&id=714567597879
[video(video-h3XJokCu-1637385553899)(type-csdn)(url-https://live.csdn.net/v/embed/180813)(image-https://vedu.csdnimg.cn/306421fe16034011bd9c7eb01a521978/snapshots/053aac6d685c4e4d80eab123cdf17ef5-00003.jpg)(title-oculus VR漫游)]
静态资源
<a-assets timeout="40000">
<!-- 房子 -->
<a-asset-item
id="Building"
src="assets/model/New_Building_final1.glb"
nav-agent="speed: 1.5; active: true"
></a-asset-item>
<a-asset-item
id="Building_skeleton"
src="assets/model/New_Building_final_skeleton1.glb"
nav-agent="speed: 1.5; active: true"
></a-asset-item>
<!-- 树 -->
<a-asset-item
crossorigin="anonymous"
id="Palm"
src="assets/model/PalmMinimal.glb"
></a-asset-item>
<!-- 小地图 -->
<a-asset-item
crossorigin="anonymous"
id="Island"
src="assets/model/Islands.glb"
></a-asset-item>
<img crossorigin="anonymous" id="flare-asset" src="assets/images/adjustflare.jpg" />
<img crossorigin="anonymous" id="grid" src="assets/images/opaic_grid.png" />
</a-assets>
海岛
<a-entity
id="navmesh-Island"
gltf-model="url(assets/model/navmeshMegaHelloIsland.gltf)"
scale=""
visible="true"
nav-mesh=""
></a-entity>
海洋
<a-ocean
position="-28.98488 -1.76439 22.54954"
scale="3 3 3"
depth="50"
opacity=".75"
ocean="density: 45; amplitude: -0.1; speed: 0.75; speedVariance: 0.1"
></a-ocean>
控制器
<a-entity
id="cameraRig"
movement-controls="constrainToNavMesh: true;"
navigator="cameraRig: #cameraRig; cameraHead: #head; collisionEntities: .collision; ignoreEntities: .clickable"
position="0 0 0"
rotation="0 0 0"
>
<a-entity
id="head"
camera="active: true"
position="0 1.6 0"
look-controls="pointerLockEnabled: true; reverseMouseDrag: true"
></a-entity>
<a-entity
class="leftController"
oculus-touch-controls="hand: left"
teleport-controls="cameraRig: #cameraRig; teleportOrigin: #head; button: trigger; curveShootingSpeed: 18; collisionEntities: #navmesh-Island; landingMaxAngle: 60"
visible="true"
>
</a-entity>
<a-entity
class="rightController"
oculus-touch-controls="hand: right"
laser-controls
raycaster="showLine: true; far: 15; interval: 0; objects: .clickable, a-link;"
line="color: lawngreen; opacity: 0.5"
visible="true"
></a-entity>
</a-entity>
Oculus CDN服务器的XSS漏洞
前言
我来分享一个Facebook旗下公司Oculus网站存在的类似XSS漏洞,该漏洞最终获得了Facebook官方$1500美金的奖励。
Facebook在2014年3月宣布以20亿美元收购虚拟现实(VR)头戴设备制造商Oculus,Facebook计划将Oculus的VR技术优势扩大至新的垂直领域,如通信、媒体和娱乐、教育及其他领域等。
Oculus发布了定制化开源的开发者项目( Custom Developer Items),这项功能已向社区开发者推送。无论你是开发虚拟现实游戏、社交体验、娱乐还是教育类应用,都可以使用自己最喜欢的游戏引擎或我们的原生 SDK 轻松地在整个 Oculus 平台上进行开发。它覆盖了Oculus Rift + Touch 、Oculus Go 和 Samsung Gear VR + 控制器的VR产品,与主流开源的VR开发工具Unity结合,用户可以定制化地开发属于自己的应用。
漏洞发现及PoC
在Oculus网站的账户管理页面https://dashboard.oculus.com/,注册并登录账户后,有一个服务端功能允许开发者上传应用相关的asset资源文件,且所有asset资源文件都储存在了”oculuscdn.com”网站中。例如,我们用该服务端功能上传一个图片文件时,其发送的POST请求如下:
POST /upload_image/ HTTP/1.1Host: graph.oculus.commultipart/form-data
之后,oculuscdn.com返回的响应如下:
HTTP/1.1 200 OK{“id”: “1234567890012345”,“handle”: “HANDLE_TO_THE_IMAGE”,“uri”: “https://scontent.oculuscdn.com/v/t64.5771-25/12410200_1905973632996555_3168227744525844480_n.png?_nc_cat=0&oh=6163326b2eb5e87c16c6949f1e734611&oe=5AD840C8”}
其中包含了图片的ID号,称呼Handle和具体的访问链接URL。可以看到,我们POST请求主机graph.oculus.com,Response中响应的主机为scontent.oculuscdn.com。这里存在的漏洞就比较简单了,不需要像之前facebook cdn的那样需要进行cname域名替换,这里直接把 /v/ 和HASH串去掉,就能访问到目标图片了。整个测试过程如下:
上传PNG图片,用BurpSuite拦截抓包;
拦截到上传的PNG图片内容,把恶意的带XSS Payload的js外链添加在其末尾;
成功上传后,从响应内容中提取出图片上传后的具体访问URL链接;
然后,把URL中的 “/v/“ 和 HASH串去掉去掉,再把上传图片的后缀格式由.jpg改为.html,就能成功加载之前添加进入的js恶意Payload了。
这里,我用到的带XSS Payload的js外链为:
https://www.amolbaikar.com/wp/js/oculus.js
最终的请求链接如下:
https://scontent.oculuscdn.com/t64.5771-25/12410200_1905973632996555_3168227744525844480_n.html
PoC视频:
漏洞影响
该漏洞允许攻击者在Oculus CDN服务器上执行任意JS文件,好在有沙盒防护机制,其不能读取用户的cookies/session信息,但应用在实际的攻击场景中,该漏洞可以绕过Facebook的链接黑名单系统 Linkshim,也能用其实施钓鱼行为。
漏洞上报进程
2018.3.19: 漏洞初报
2018.3.22: 技术详情提供
2018.3.22: Payload测试
2018.3.23: 漏洞有效性认可
2018.5.25: 漏洞修复
2018.6.1: $1500赏金发放
*参考来源:amolbaikar,clouds编译,转载请注明来自FreeBuf.COM
以上是关于oculus设备VR漫游的主要内容,如果未能解决你的问题,请参考以下文章
Oculus + Node.js + Three.js 打造VR世界