论坛首页 密码学讨论区 阅读主题

[原创] 网盘秒传功能的利用

365 浏览 23 回复
#1 楼主 2026-06-01 21:09:07
最近由某些原因,需要下载上古时代的文件,结果找出来的链接要么失效、要么龟速。然后就想到了用网盘的秒传功能来帮我找文件。其实这方法在阿里云盘上线的早期已经试过,是可以正常用的,不过后来接口加了密,就没继续跟进了。这次玩的是天翼云盘,毕竟这个是真的不限速!话不多说,直接开干。打开F12,找一个可以被秒传的文件,上传很容易观察到秒传调用接口分两步:根据后来结论得出:initMultiUpload主要是向后台申请空间(因为可能空间不足,也可能每日上传数据量超过上限),申请成功后,会返回一个uploadid,然后再调用commitMultiUploadFile填上这个uploadid来上传。可以看到GET请求的参数不可读,已经被加密,所以需要定位加解密算法。XHR断点勾上,上传。直接断下来了,代码逻辑非常清晰,就是涉及的算法有点多其中s = n("xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx")相当于一个GUID生成器其中c = n("xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").slice(0, 16 + 16 * Math.random() | 0)就是个随机串生成器,这里生成出来的c值将会被当作AES的key来使用,后面RSA算法加密的就是这个c其中i.default.AES.encrypt就是AES(PKCS7填充模式)其中b.encrypt就是RSA加密再套一层base64接下来实现这些算法,由于我只会C艹,所以这里用C艹来实现了。毫秒时间戳:AES(调用openssl),注意这里要用PKCS7填充:HMACSHA1:RSA:Base64:噢对了,还有两个重要的值:RSA公钥来源:sessionKey来源:这俩值随便抓一下,能用几个小时。parentFolderId=-15这是个固定的文件夹"我的文档"的ID,每个用户都有且无法删除。想用自建的文件夹就稍微麻烦点。c就是上面随机生成的c值,是个字符串,直接传进去就行加密结果转成16进制字符串后就是GET参数中的params随机生成一个GUID填入即可毫秒级时间戳PkId与RSA公钥是在同一个接口里拿到的,一定要配套使用才行SessionKey来自/api/portal/v2/getUserBriefInfo.action接口Date毫秒级时间戳,保持与X-Request-Date相同params就是GET参数中的paramsc就是上面随机生成的c值结果转换成16进制字符串后填写到Signature就行注意外层有个base64加密算法同上,不再赘述成功!仅通过文件的MD5+filesize完整了文件的秒传。这里也提醒大家,保护好自己的文件信息,可能一张截图就会导致了你的文件不小心被泄露!https://upload.cloud.189.cn/person/initMultiUpload

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-284783.htm
#2 2026-06-01 21:09:07
感谢分享
#3 2026-06-01 21:09:07
谢谢分享
#4 2026-06-01 21:09:07
感谢分享,写作不易,愿我的一句感谢,保持你的写作热度
#5 2026-06-01 21:09:07
谢谢分享
#6 2026-06-01 21:09:07
谢谢分享
#7 2026-06-01 21:09:07
谢谢分享
#8 2026-06-01 21:09:07
感谢分享
#9 2026-06-01 21:09:07
感谢分享
#10 2026-06-01 21:09:07
有点意思 和我想得差不多,我最近在逆向金山wps云盘的协议 比你这个还简单点,但是他有个地方没法碰撞,他要求sha1和md5 同时匹配的时候才行,否则就认为是新文件,这种感觉就没办法碰撞了
#11 2026-06-01 21:09:07
很高级
#12 2026-06-01 21:09:07
请问百度网盘现在能秒传吗
#13 2026-06-01 21:09:07
这是啥意思。
文件秒传是网盘服务器有那个相同的文件存在,这是利用秒传对比来下载自己网盘不存在 而服务器存在的文件吗。
#14 2026-06-01 21:09:07
私有文件要同时猜中文件大小和md5有几率,但感觉蛮难的。
#15 2026-06-01 21:09:07
谢谢分享
#16 2026-06-01 21:09:07
用的地方很少,主要是文件MD5搞不到,想找一个文件没有它的MD5也是不行的
‹ 上一页 1 2 下一页 ›

请登录后参与讨论

立即登录 注册账号