随便扫码原来这么危险,你知道吗?

admin 2025-09-26 阅读:31 评论:0
条码这个古老的技术如今已成为物理世界和数字世界的接口。不管是随处可见的扫码器,还是人手一部的手机,扫一下码就在两个世界间穿越了。可能有人告诉过你随便扫码很危险,但到底有多危险?为什么危险? 昨天于旸在 GeekPwn 演讲中展示了它的危险性...

条码这个古老的技术如今已成为物理世界和数字世界的接口。不管是随处可见的扫码器,还是人手一部的手机,扫一下码就在两个世界间穿越了。可能有人告诉过你随便扫码很危险,但到底有多危险?为什么危险?

昨天于旸在 GeekPwn 演讲中展示了它的危险性。如果你没有听说过于旸,也许对他另一个名字更熟悉——「TK 教主」——来自他用的 ID「Tombkeeper」,这是一个在安全行业如雷贯耳的名字。去年他加入腾讯,组建了玄武实验室,开展多项面向未来的安全技术研究。

他们研究条码后发现,利用一张印有条码的纸就能攻破一台计算机。

(于旸,腾讯玄武实验室负责人,他在 GeekPwn 大会上展示了条码的危险性。)

下面的内容在于旸演讲的基础上编辑而成。

条码:一种机器可读的数据表示形式

条码的历史非常长,早在上世纪 40 年代末就有人想到条码这个主意并开始实验。它的原理很简单:使用某种协议将信息编成图像,用条码阅读器或手机获取图像,将图像交给芯片,把图像解码转换成信息,最后传输到电脑。

它的应用无处不在:超市收银时扫描包装袋上的条码获取价格;医院扫描病历上的条码读取病人信息;商家扫描微信支付条码收款……

这些条码大多是一维码,另一种条码是随着微信普及而重获新生的二维码(它还有个名字叫 QR Code)。条码使用的协议非常多,有一种协议叫 Code 128, 这是一个非常有野心的协议,它支持全部 ASCII 字符。ASCII 是二进制对应的字符,现代计算机使用这套字符编写代码。它对于计算机编程而言相当于拉丁字母之于各种西方语言。总之,用它能编写代码控制计算机。

市面上的大部分条码阅读器都支持这种协议,这意味着黑客可以编写一段程序,转化成条码,通过条码阅读器传输到计算机上。

这些代码怎么才能管用?绝大多数情况下,条码阅读器通过 USB 接口接入计算机,对计算机而言这就是一个输入设备,计算机只捕捉它们发过来的信号,从哪儿发过来对电脑来说是一样,如果它发送通常由键盘发送过来的信号,计算机也会一样执行。

如果你将键盘种的热键,比如 CTRL+2, CTRL+O 等编成条码,通过条码扫描器输入计算机,便能直接控制计算机。Code 128 协议不支持 Win+R 这种热键,但最大的条码阅读器厂商 Symbol 公司还有一种特有的技术叫 ADF,它支持 Win+。这样控制的内容就更广了,能直接调出计算机的命令窗口。

以前的攻击方式

以前有过一个研究,将条码作为一笔输入源看待,能通过条码触发计算机内存的溢出,或触发格式化字符串,还能 SQL 注入等。

还有一种更简单的攻击方式,大部分应用场景下,条码种的数字都是按照序号排列的,比如你去商店买个东西,商家给你一个条码取货,你先获取条码种的数字,再在此基础上做改变,比如+1,+2…… 这样就能拿无限的东西。下一个在你后面买东西的人拿到的条码已经被你刷过。

对二维码来说还有一种常见的钓鱼攻击。

玄武实验室的研究:用条码做任何事

之前那些攻击方式都关注在应用程序对条码输入的数据没有很好处理,而不是条码或者条码阅读器本身。

如果回头去看对条码和条码阅读器的研究,会发现其实条码可以作为控制计算机的一种方式。玄武实验室将这种方式叫做 BadBarcode。

Demo 1: 对话框攻击

正常情况下条码输入的是数字或字母,但现在不输入这些内容,而是一个系统热键,比如 xx,这样扫描条码时就会把对话框调出来,如果这时候计算机使用的是触摸屏(比如很多银行终端机所使用的那种),你就能执行你想执行的事情了。

Demo 2: 纸片攻击

不是所有设备都有触摸屏,能不能只用条码完成所有交互?这时候便可以通过一连串条码的组合来实现。

Demo 3:全自动攻击

自己一个个扫描很累对不对?把黑客精神发挥到极致,能不能找到一种全自动的攻击方式?之前我们考虑是否写个手机 App,里面自动滚动代码扫描,但发现大部分扫码器无法读取手机屏幕。因为扫码器使用激光阅读,激光的原理是反射光,但液晶屏背光whatsapp web,所以得到了对比度很低,肉眼看到的东西对激光来说是黑的。

最终发现,答案是 Kindle。它的显示基于反射环境光,DPI 足够高,Kindle 可编程。是完美的 BadBarcode 工具。

事先编写好程序,将 Kindle 放在扫码器下面whatsapp官网,就能自动控制计算机做一系列的事情。

安全建议

条码阅读器生产商:默认不开启类似 ADF 功能,默认不向主机传输 ASCII 控制字符;

使用者:尽量不要选用 PS/2 或 HID 键盘模拟条码阅读器;对使用 PS/2 或 HID 键盘模拟条码阅读器的设备whatsapp网页版,可通过禁用热键以阻止 BadBarcode 攻击。

(头图来自tattoosforyou.org;感谢极客公园李甘对本文提供的帮助。)

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

3502文章数 0评论数
热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...