Web,分析
分析

Android 克隆账户

http://www.cnvd.org.cn/webinfo/show/4365


瞻仰并学习一下,感觉这个“漏洞”不是一个漏洞。仅仅只是程序员自己写程序的问题,没有把google给的便利给控制好,或者说太“贪心”。


原文:

安全公告编号:CNTA-2018-0005

2017年12月7日,国家信息安全漏洞共享平台(CNVD)接收到腾讯玄武实验室报送的Android WebView存在跨域访问漏洞(CNVD-2017-36682)。攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对APP用户账户的完全控制。由于该组件广泛应用于Android平台,导致大量APP受影响,构成较为严重的攻击威胁。

一、漏洞情况分析

WebView是Android用于显示网页的控件,是一个基于Webkit引擎、展现web页面的控件。WebView控件功能除了具有一般View的属性和设置外,还可对URL请求、页面加载、渲染、页面交互进行处理。

该漏洞产生的原因是在Android应用中,WebView开启了file域访问,且允许file域对http域进行访问,同时未对file域的路径进行严格限制所致。攻击者通过URL Scheme的方式,可远程打开并加载恶意HTML文件,远程获取APP中包括用户登录凭证在内的所有本地敏感数据。


漏洞触发成功前提条件如下:

1.WebView中setAllowFileAccessFromFileURLs 或setAllowUniversalAccessFromFileURLsAPI配置为true;

2.WebView可以直接被外部调用,并能够加载外部可控的HTML文件。

CNVD对相关漏洞综合评级为“高危”。

二、漏洞影响范围

漏洞影响使用WebView控件,开启file域访问并且未按安全策略开发的Android应用APP。

三、漏洞修复建议

厂商暂未发布解决方案,临时解决方案如下:

1. file域访问为非功能需求时,手动配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs两个API为false。(Android4.1版本之前这两个API默认是true,需要显式设置为false)

2. 若需要开启file域访问,则设置file路径的白名单,严格控制file域的访问范围,具体如下:

(1)固定不变的HTML文件可以放在assets或res目录下,file:///android_asset和file:///android_res 在不开启API的情况下也可以访问;

(2)可能会更新的HTML文件放在/data/data/(app) 目录下,避免被第三方替换或修改;

(3)对file域请求做白名单限制时,需要对“../../”特殊情况进行处理,避免白名单被绕过。

3. 避免App内部的WebView被不信任的第三方调用。排查内置WebView的Activity是否被导出、必须导出的Activity是否会通过参数传递调起内置的WebView等。

4. 建议进一步对APP目录下的敏感数据进行保护。客户端APP应用设备相关信息(如IMEI、IMSI、Android_id等)作为密钥对敏感数据进行加密。使攻击者难以利用相关漏洞获得敏感信息。


可以看到上述问题主要是一个WebView控件引起的,但是Google明明已经提供接口设置更严密的使用策略,为什么还要这样。一般开发的时候实际除了浏览器以为外部调用实际可以禁止掉。但是有些App还要自己充当浏览器,那就是zuo的节奏。


WebView暴露的接口:

setAllowFileAccessFromFileURLs:允许访问本地资源(App自身)

setAllowUniversalAccessFromFileURLs:允许访问其他域资源例如http这种协议。


实际还要有一个前提:默认打开网址的App非浏览器。(我的手机没这个功能)。


原理:App获取网址->WebView解析渲染->File域->获取本地资源->上传资源。


另一部手机:获取资源->填充到相应App资源目录内。

135编辑器无法粘贴

360截图16280724647386.png

遇到一个奇怪的问题,如果使用135编辑器或者秀米编辑器的时候点击复制内容,却无法把内容粘贴到notepad编辑器里进行编辑。带着这个问题就去看了一下135编辑器复制的实现代码。

未完待续:关注微信小程序获取访问密码 (文章ID:1216)或小程序在线阅读

某软件数据库的欣赏

最近遇到一款软件,需要修改一下它的数据库,以达到某种不可告人的秘密。在看主程序的时候才发现它把所有的功能实现全部封装在了独立的DLL里,每一个功能对应一个DLL。所以需要去看一下相应的DLL才知道操作了哪些表,因为这个数据库表实在是有点多。找到表以后尝试着修改,发现一个错误。

“由于数据表...需要一个相关记录,不能添加或修改记录。

这个问题属于“完整性约束”定义的问题,由于某字段定义了外键。你要修改的表实际是一张从表,你要先修改主表,从表才可以变动。于是可以看一下数据库关系图。

psb.jpg

从关系图中你可以看到跟你要修改的表有关联的表,并且可以看到关键的字段。这样的话就可以修改了。



弱点测试程序的一个问题

今天浏览网站的时候才发现有人给我留言了。


360截图16490203101116142.png


自己也对这个弱点测试程序进行了一下测试,发现确实存在问题。


360截图16580103384056.png


发现还是有可行性的。大家集思广益提提修复意见吧。


PS:看到有人回复,我就把畅言第三方回复去掉了,换成了Typecho自带的回复样式。这样也许回复更简单一些。