PHITHON的公开漏洞fanwe O2O用户密码可劫持(通用/开源软件jsonp劫持案例) 2016-09-06
fanwe O2O用户密码可劫持(通用/开源软件jsonp劫持案例)
TSRC西安沙龙议题之Fanwe o2o。(通用/开源应用中的jsonp劫持案例)
/mapi/Lib/core/common.php中有 fanwe o2o的output函数:
1 | /** |
这是一个通用的输出函数,所有/mpai下的输出全部由output输出。
我们可以看到,这里当$_REQUEST['r_type']==3
的时候,输出格式为jsonp。所以,如果$data
中有敏感信息,即会造成jsonp劫持。
结果当前函数中就存在一个敏感信息:sess_id:$data['sess_id'] = $GLOBALS['sess_id'];
用户登陆后(fanwe o2o 默认用户账号密码都是fanwe,以这个用户为例),可劫持用户的session( http://localhost/mapi/index.php?ctl=syncbind&act=index&login_type=Sina&access_token=ooooo&sina_id=ooooo&r_type=3&callback=wooyun ):
继续深挖,刚才访问的这个URL( http://localhost/mapi/index.php?ctl=syncbind&act=index&login_type=Sina&access_token=ooooo&sina_id=ooooo&r_type=3&callback=wooyun ),实际上就是将账户fanwe绑定了sina_id为ooooo。
那么另外一处,我们可以直接用ooooo进行登录:
http://localhost/mapi/index.php?ctl=synclogin&act=index&login_type=Sina&sina_id=ooooo&access_token=ooooo&r_type=3&callback=wooyun
如上图,可以直接劫持用户密码。
写了个POC证明问题。受害者只要在登录状态,访问该POC即会弹出他的账号、邮箱、密码: http://mhz.pw/game/tx/fanweo2o.html