转载

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

10月25日在极客安全峰会上,腾讯玄武实验室于旸从条码的知识小科普到现场破解demo秀,分享了一种针对条码系统的通用攻击方法,攻击者仅需要用一张印有条码的纸,就能让计算机执行win+r、弹出CMD窗口、弹出计算器!

什么是条码?

条码是最古老的IoT协议,以至于人们谈起时髦的IoT时常常忽略了它。它是一种机器可读的数据表示形式,将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。任何种类的条码都包含静区、起始字符、数据字符以及终止字符,也有些条码还包含校验数字。

静区:不携带任何信息的区域,起提示作用。

起始字符:具有特殊结构,告知数据区开始。

数据字符:根据协议不同,可包含数字、字母、数字和字母、全ASCII字符集等。

终止字符:有特殊结构,告知扫描完毕。

条码阅读器的原理在于,通过扫描获取图像,经解码转换后传输数据。

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

读取条码信息的原理(图)

条码协议有多种,例如:UPC/EAN,Code 39,Code 39FullASCII,Code 93,Code 128,interleaved 2of5,Coupon code,Codebar等。其中,Code 128支持全部ASCII字符,拥有4个可自定义的功能码,三种编码字符集:CodeA、Code B、CodeC。

目前生产扫码器的 厂商有Symbol(Zebra)、ACCESS IS、厦门精瑞、TaoTronics、爱宝等。这些产品应用于医疗、商场等多个场景,在我们的日常生活中几乎随处可见。

用条码触发攻击

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

那么,你觉得有没有可能用条码输入Ctrl+O,甚至Win+R?你想过通过条码可以触发溢出,格式化字符串,SQL注入以及XSS攻击么?腾讯玄武实验室通过研究分析发现,通过条码可以触发溢出,触发格式化字符串,实现SQL注入以及XSS。并在大会现场进行了演示。

演示一:对话框攻击:扫描条码出现对话框。

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

演示二:纸片攻击:扫描条码启动cmd,调出计算器。

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

演示三:kindle攻击:扫描kindle屏幕显示的条码,启动cmd,调出计算器。

腾讯玄武实验室:用条码可触发SQL注入、XSS攻击

怎么会出现这种情况?

答案是BadBarcode。于旸表示,BadBarcode不是某款产品或者某个厂商的漏洞,而是一类产品的问题。所有使用PS/2或HID键盘模拟条码阅读器的设备都可能受BadBarcode影响,条码阅读器支持ADF的设备可能实现全自动攻击,条码阅读器不支持ADF但有触屏的也可能被攻击。此外,其它键盘模拟设备也有可能有类似问题,如RFID/NFC Reader。

安全建议

对此,于旸从以下两方面给出了自己的建议:

1、对条码阅读器生产商默认不要开启类似ADF的功能,默认不要向主机传输ASCII控制字符。

2、对使用PS/2或HID键盘模拟条码阅读器的设备的生产商,尽量不要选用PS/2或HID键盘模拟条码阅读器。对使用PS/2或HID键盘模拟条码阅读器的设备,可通过禁用热键以阻止BadBarcode攻击。

很多条码阅读器的输出是PS/2或HID键盘模拟,使用Code 128 等协议支持ASCII control characters,条码阅读器通常都支持Code 128。

正文到此结束
Loading...