蓝科溯源

www.bluearp.com

Android平台下二维码漏洞攻击杂谈

2017-07-17 08:01:04

苏宁易购Android版扫描二维码会用Webview打开网页,由于苏宁易购导出多个js接口,因此扫描二维码即会受到远程命令执行漏洞攻击(版本已修复)。

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.DecodedBitStreamParser.decode(Unknown Source)

Android平台下二维码漏洞攻击杂谈

http://p4.qhimg.com/t017a5006c8084c0928.jpg

11-23 10:39:02.535: E/AndroidRuntime(1888): java.lang.ArrayIndexOutOfBoundsException: length=9; index=9


11-23 10:39:02.535: E/AndroidRuntime(1888): Process: com.xxx, PID: 1888
11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.MultiFormatReader.decodeWithState(Unknown Source)

com.suning.mobile.ebuy.host.webview.WebViewActivity导出多个js接口:

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.MultiFormatReader.decodeInternal(Unknown Source)


苏宁易购Android版首页有个扫描二维码的功能:

恶意二维码如下:

p1

低版本的zxing这个二维码库在处理畸形二维码时存在数组越界,导致拒绝服务。扫描下面的二维码,可能导致主程序崩溃:

0x05 总结

0x01 拒绝服务

#p#分页标题#e#

二维码可能攻击的点还不止上面列的那些,发散下思维,还有zip目录遍历导致的远程代码执行漏洞,还有sql注入漏洞,说不定还有缓冲区溢出漏洞。思想有多远,攻击面有多宽!Have Fun!

0x04 远程命令执行

用快拍扫描之后,能读取本地文件内容:



之前Wooyun上爆了一个利用恶意二维码攻击快拍的漏洞,识别出来的二维码默认以html形式展示(Android+Iphone),可以执行html和js。将下面的js在cli.im网站上生成二维码:

p7

0x00 前言



p4

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.Decoder.decode(Unknown Source)

扫描二维码时,如果二维码是个网页链接,会调用上面的Webview组件打开恶意网页:


现在Android App几乎都有二维码扫描功能,如果没有考虑到二维码可能存在的安全问题,将会导致扫描二维码会受到漏洞攻击,严重的可能导致手机被控制,信息泄漏等风险。

<uses-sdk

</uses-sdk>

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.DecodedBitStreamParser.decodeAlphanumericSegment(Unknown Source)
>


android:minSdkVersion="8"


Android平台下二维码漏洞攻击杂谈

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.common.BitSource.readBits(Unknown Source)

Webview组件几乎存在于所有Android App中,用来渲染网页。如果扫描二维码得到的结果是个网址,大部分App会直接用Webview来打开,由于Webview存在UXSS漏洞,很容易导致资金被窃、帐号被盗或者隐私泄露。漏洞介绍可参考TSRC博文:Android Webview UXSS 漏洞攻防

去年,Android平台上的Webview UXSS漏洞被吵的沸沸扬扬,由于低版本的Android系统自带的Webview组件使用Webkit作为内核,导致Webkit的历史漏洞存在于Webview里面,其中包括危害比较大的UXSS漏洞。

11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.QRCodeReader.decode(Unknown Source)

0x03 UXSS

大部分Android App扫描二维码之后,如果识别到的二维码内容是个网址时,会直接调用Webview来进行展示。如果Webview导出了js接口,并且targetSDK是在17以下,会受到远程命令执行漏洞攻击风险。

0x02 本地文件读取

this.b(this.a); this.s = this.findViewById(2131494713); this.d = this.findViewById(2131494100); this.d.a(((BaseFragmentActivity)this)); this.l = new SNNativeClientJsApi(this); this.d.addJavascriptInterface(this.l, "client"); this.d.addJavascriptInterface(this.l, "SNNativeClient"); this.d.addJavascriptInterface(new YifubaoJSBridge(this), "YifubaoJSBridge");

由于targetSDKversion为14,因此所有Android系统版本都受影响:






android:targetSdkVersion="14"

<script> x=new XMLHttpRequest();  if(x.overrideMimeType)  x.overrideMimeType('text/xml');  x.open("GET", "file://///default.prop", false);  x.send(null);  alert(x.responseText);  </script>

p2


通过程序的崩溃日志可以看出是个数组越界:

p6

11-23 10:39:02.535: E/AndroidRuntime(1888): FATAL EXCEPTION: Thread-14396

p3

p5

蓝城云软件产品收费标准

二维码应用云溯源

联系我们
现在注册,即可享受免费生成二维码溯源
蓝城云微信
购买咨询
溯源解决方案
灵活的合作方式
1对1贴心售后服务
2017 bluearp.com 版权所有 京ICP备17007110号-1
溯源软件,溯源系统,二维码溯源,溯源管理软件,查询真伪,二维码溯源2222
服务热线
服务热线

022-82939965

服务时间 周一至周五 8:30-18:00
7*24小时咨询热线 业务咨询

许经理 13001001853

项目咨询

闫经理 13051250015

王经理 13051210015

扫码关注
扫一扫关注溯源案例
返回顶部
022-82939965