相关文章推荐
俊逸的茶壶  ·  EF Linq中的左连接Left ...·  2 年前    · 
鼻子大的肉夹馍  ·  出海全球化创业的趋势和实践·  2 年前    · 
冷静的哑铃  ·  C++模板的声明和定义为什么不能分写在.h与 ...·  2 年前    · 
热心的砖头  ·  "加载广告失败。3 "与DoubleClick·  2 年前    · 
Code  ›  WebUSB:一个网页是如何从你的手机中盗窃数据的(含PoC)开发者社区
软件 usb接口 poc
https://cloud.tencent.com/developer/article/1045645
坚韧的大葱
2 年前
作者头像
FB客服
0 篇文章

WebUSB:一个网页是如何从你的手机中盗窃数据的(含PoC)

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > FreeBuf > WebUSB:一个网页是如何从你的手机中盗窃数据的(含PoC)

WebUSB:一个网页是如何从你的手机中盗窃数据的(含PoC)

作者头像
FB客服
发布 于 2018-02-27 14:40:41
2.1K 0
发布 于 2018-02-27 14:40:41
举报

介绍

今年9月15日,Chrome61发布,它启用了WebUSB作为其默认功能。而WebUSB是一个Javascript API,可以允许网页访问已连接的USB设备。这里的USB设备是指系统和工业的USB设备,所以不支持常见的USB设备(比如网络摄像头,HID或大容量储存设备)。然而通过WebUSB API,很多其他的USB设备可以被访问,且当用户授权给网页时,自己可能根本不了解网页获取的访问权限级别。

这篇文章探寻WebUSB的功能,以深入了解其工作原理,攻击方法及隐私问题。我们会解释访问设备所需的过程,以及浏览器是如何处理权限的,然后我们会讨论一些安全隐患,并演示一个网站如何使用WebUSB来建立ADB连接来入侵安卓手机。

基础

当USB设备插入主机时,浏览器会读取设备发送的描述符,然后将其储存在内部USB设备储存器中。此过程由Chrome的浏览器内核Blink处理。日志可以在chrome://device-log(GET参数“refresh = 1”非常有用)中查看。

根据规范,设备可以在其二进制 对象存储 中的平台描述符中明确地声明对WebUSB的支持。

Offset

Field

Size

Value

Description

0

bLength

1

Number

Size of this descriptor. Must be set to 24.

1

bDescriptorType

1

Constant

DEVICE CAPABILITY descriptor type.

2

bDevCapabilityType

1

Constant

PLATFORM capability type.

3

bReserved

1

Number

This field is reserved and shall be set to zero.

4

PlatformCapabilityUUID

16

UUID

Must be set to {3408b638-09a9-47a0-8bfd-a0768815b665}.

20

bcdVersion

2

BCD

Protocol version supported. Must be set to 0x0100.

22

bVendorCode

1

Number

bRequest value used for issuing WebUSB requests.

23

iLandingPage

1

Number

URL descriptor index of the device’s landing page.

浏览器将每个USB设备存储在自己的设备存储器中。WebUSB的可访问性由本机驱动程序支持所决定。在Windows上,我们可以通过浏览器访问由WinUSB驱动程序处理的每个USB设备。其他的诸如大容量存储设备,网络摄像头或HID等就无法通过网络访问了,因为它们具有处理这些设备的专用驱动程序。

根据规范(和本博客文章),一旦设备注册,浏览器就会显示一条通知。看起来像这样:

但是,这种行为不容易重现。我们在以下系统上尝试过:

Windows 7, Chrome 61 Windows 10, Chrome 61

 
推荐文章
俊逸的茶壶  ·  EF Linq中的左连接Left Join查询-腾讯云开发者社区-腾讯云
2 年前
鼻子大的肉夹馍  ·  出海全球化创业的趋势和实践
2 年前
冷静的哑铃  ·  C++模板的声明和定义为什么不能分写在.h与.cpp文件中 - Jcpeng_std - 博客园
2 年前
热心的砖头  ·  "加载广告失败。3 "与DoubleClick
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号