首页  :: 新随笔  :: 管理

百度网盘提交提取密码:根据cookies获取loginId 的js

Posted on 2018-10-13 15:59  季枫  阅读(3798)  评论(0编辑  收藏  举报

 java下载百度网盘中资料,发现网上都只有关于公开分享的实现,没有关于私有分享的实现,抓包发现有一个关键参数:logid

url:https://pan.baidu.com/share/verify?surl=************&t=1509412566441&channel=chunlei&web=1&app_id=250528&bdstoken=null&logid=MTUzOTQxMjU3MjAzNTAuNzYxNTk5NzA2MzQ3MTM2&clienttype=0

下载js文件,分析追踪到由boot.js实现的该方法:https://pan.baidu.com/sns/box-static/disk-share/js/boot.js,提取相关代码编写html测试代码,ok通过了。

其中:67BFDB0118FA226AA5DDADE130F14929:FG=1是请求分享地址:https://pan.baidu.com/s/*****的response返回的cookies

百度网盘技术交流

932387647

<html>
<body>

<script type="text/javascript">

function loginIdExe(){

	    var u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/~!@#¥%……&";
		var l = String.fromCharCode;
		var d = function(e) {
			console.log("d:"+e);
			if (e.length < 2) {
				var n = e.charCodeAt(0);
				return 128 > n ? e : 2048 > n ? l(192 | n >>> 6) + l(128 | 63 & n) : l(224 | n >>> 12 & 15) + l(128 | n >>> 6 & 63) + l(128 | 63 & n)
			}
		var n = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320);
			return l(240 | n >>> 18 & 7) + l(128 | n >>> 12 & 63) + l(128 | n >>> 6 & 63) + l(128 | 63 & n)
		};
		var f = /[�-�][�-�F]|[^-]/g;
		var g = function(e) {
			var _srr=(e + "" + Math.random());
			var _rep=_srr.replace(f, d);
			return _rep
		};
		var h = function(e) {
			var n = [0, 2, 1][e.length % 3],
				t = e.charCodeAt(0) << 16 | (e.length > 1 ? e.charCodeAt(1) : 0) << 8 | (e.length > 2 ? e.charCodeAt(2) : 0),
				o = [u.charAt(t >>> 18), u.charAt(t >>> 12 & 63), n >= 2 ? "=" : u.charAt(t >>> 6 & 63), n >= 1 ? "=" : u.charAt(63 & t)];
			return o.join("")
		};
		var m = function(e) {
			return e.replace(/[\s\S]{1,3}/g, h)
		};
		var p = function() {
			var _t=(new Date).getTime();
			var _g=g(_t);
			var _m=m(_g);
			console.log(_t);
			console.log(_g);
			console.log(_m);
			

			return _m
		};
		this.w = function(e, n) {
			return n ? p(String(e)).replace(/[+\/]/g, function(e) {
				return "+" == e ? "-" : "_"
			}).replace(/=/g, "") : p(String(e))
		};


}
var bbc=new loginIdExe();
//var _encodeLoginid=bbc.w("67BFDB0118FA226AA5DDADE130F14929:FG=1");
//jsonp=JSON.parse(jsonp.json)
//jsonp=JSON.parse(jsonp.webPgJson)
document.write("id:"+bbc.w("67BFDB0118FA226AA5DDADE130F14929:FG=1"));
</script>

</body>
</html>

  f本身就是特殊的字符,所以看上去是乱码

智读 | 成都会领科技有限公司官网 | 智读App下载 | 每天听本书的博客 | |