阅读器插件现已成为了阅读器的必备品,可是商场上的插件也良莠不齐,乃至部分插件切换用户隐私,如阅读器的历史记录。笔者就遇到了这样一个插件,便是闻名的手势插件:crxMouse Chrome Gestures,更可气的是现已用了这个插件一年多了。
用Google搜索crxMouse Chrome Gestures导向到google商场,能够看到这款插件的简略介绍。
原名:Gestures for Chrome(TM)汉化版.便利,方便,充沛开掘鼠标的一切操作.功用包含:鼠标手势,超级拖曳,滚轮手势,摇杆手势,滑润翻滚,标签页列表等. 本扩展致力于经过鼠标来完成一些功用操作,充沛发掘鼠标的一切操作.
功用包含:鼠标手势,超级拖曳,滚轮手势,摇杆手势,滑润翻滚,标签页列表等
现在在google商场上这款插件有30万的用户,累计点评5000,其间很大一部分是国内用户,影响仍是十分广泛的。
经过wireshark抓包能够看到两个别离发送到s808.searchelper.com和s1808.searchelper.com的恳求,直接上图:
从origin能够看出,恳求是来源于阅读器插件,符号为:jgiplclhploodgnkcljjgddajfbmafmp,能够经过chrome的chrome://extensions/找到该id对应的插件,便是,其对应的体系目录为
C:Users[用户]AppDataLocalGoogleChromeUser DataDefaultExtensionsjgiplclhploodgnkcljjgddajfbmafmp
咱们能够经过剖析其代码发现其完成,这个后续再讲。仔细的读者可能会看到post恳求段被加密了,看结构像是base64,尝试用base64解码,仍是base64编码格局,再次解码,得到如下数据:
s=808&md=21&pid=SjOa3PgqWSHYapU&sess=314039255259558500&q=http://bbs.pediy.com/showthread.php? t=179524&prev=http://bbs.pediy.com/forumdisplay.php?f=161&link=1&sub=chrome&hreferer=http://bbs.pediy.com/forumdisplay.php? f=161&tmv=3015
s=808就代表着服务器s808,pid即userid,sess是用户本地符号session,sub代表着阅读器类型,q代表当时页面,prev代表着从哪个页面过来,也便是referer的效果,hreferer就也记录着referer字段有了这些数据就能够剖析用户行为,能够供搜索引擎,其实百度计算和google计算也是干相同的事,乃至百度计算还有点击等的计算。就这样你的阅读行为被发送给了其他服务器,这不是最风险的,最风险的是你在阅读内网的一些页面也会被发送出去,内网的一些站点就很简单被泄露了。
接着咱们看别的一个恳求,这个恳求是发送到s1808服务器上,详细恳求如下:
解密加密后的内容和发送到s808的恳求根本共同,详细如下:
s=1808&md=21&pid=SjOa3PgqWSHYapU&sess=765877789119258500&sub=chrome&q=http%3A//bbs.pediy.com/showthread.php%3Ft% 3D179524&hreferer=http%3A//bbs.pediy.com/forumdisplay.php%3Ff%3D161&prev=http%3A//bbs.pediy.com/forumdisplay.php%3Ff% 3D161&tmv=4015&tmf=1
这儿就有点搞不太清楚发这样一个备份恳求的原因了,莫非仅仅是备份,有待考虑,为了更好的弄清楚该插件还有没有其他风险行为,接下来咱们剖析插件的完成。
插件的歹意行为会集在upalytics_ch.js代码中,装置后的初始化代码:
this.initOnceAfterInstall = function() { if (!utils.db.get("userid")) { var id = utils.createUserID(); utils.db.set("userid", id) } if (!utils.db.get("install_time")) { var now = (new Date).getTime() / 1E3; utils.db.set("install_time", now) } if (!utils.db_type.get("tmv")) { var now = (new Date).getTime() / 1E3; utils.db_type.set("tmv", SIM_ModuleConstants._TMV); } };
在初始化中生成userid,获取install_time,twv字段存放在本地localstorage中,接着会创立各种调用addListener接口来创立监听器,当tab页更新,替换,激活的时分就会调用相应的恳求发送相应的函数,extension_onRequest则是发送到s808服务器,tabs_onUpdated,tabs_onActivated,tabs_onReplaced则是发送恳求到s1808服务器,详细代码如下:
this.start = function() { try { chrome.extension.onRequest.addListener(extension_onRequest); chrome.tabs.onUpdated.addListener(tabs_onUpdated); chrome.tabs.onActivated.addListener(tabs_onActivated); chrome.tabs.onReplaced.addListener(tabs_onReplaced) } catch (e) { log.SEVERE("8835", e) } }
[1] [2] 黑客接单网