1
imn1 2014-09-12 12:10:29 +08:00
不太明白
上传可以提交特征码,但下载时特征码应该是服务器端从数据库提取的,不涉及客户端提交的问题 |
2
takato 2014-09-12 12:16:08 +08:00
从设计上讲,这个接口肯定放在应用内部,除非你能知道他们内部通信的协议来模拟,否则不太可能。
|
3
sandotsan 2014-09-12 12:22:13 +08:00
理论上可行,不过万一百度做特征码时加盐了,就没搞了,不可能你能搞到你想要的文件+盐后的特征码撒。
|
4
sandotsan 2014-09-12 12:30:34 +08:00
又想到,如果百度仅仅是做文件特征码的对比,那么协议破解的话,可以穷举文件
如果baidu除开文件特征码,还对比了文件的前3个字节或者前5个字节,那基本就没搞了, |
5
nybux 2014-09-12 12:47:12 +08:00
这个思路非常不错
|
6
lvye 2014-09-12 12:51:40 +08:00
通过md5修改器我觉得应该可以,http://www.97world.com/archives/701
|
7
ZzFoo 2014-09-12 12:52:50 +08:00
流程应该是:
客户端扫描要上传的文件——生成特征码——把特征码传递给百度云服务器——服务器对比已有特征码——获得文件所有权 如果是这样的话,只要能截取生成的特征码并且修改成一个已知的特征码。就能分享一个文件,而不用生成一个分享的链接,也就不怕被和谐了... |
8
ksc010 2014-09-12 12:56:38 +08:00
即时不用找这种欺骗的方式
你和别人分享“同一份文件”的链接应该也不是一样的啊 |
9
oott123 2014-09-12 13:12:35 +08:00 via Android
用百度网盘的 API 吧,有秒传接口。
你需要知道这个文件的哈希值,好像还要知道大小和前512字节。 秒传上传之后,就能下载了… |
11
strikehht OP 「流程应该是:
客户端扫描要上传的文件——生成特征码——把特征码传递给百度云服务器——服务器对比已有特征码——获得文件所有权 如果是这样的话,只要能截取生成的特征码并且修改成一个已知的特征码。就能分享一个文件,而不用生成一个分享的链接,也就不怕被和谐了...』 恩,我想的就是这样,可惜只知道理论完全不会实践,不知道有没哪个高人可以验证一下。。 |
12
anheiyouxia 2014-09-12 14:31:14 +08:00 via Android
@oott123 百度api有返回这个哈希值给你的,你用api上传后,会返回一个文件大小和哈希值给你
|
13
akfish 2014-09-12 15:00:24 +08:00
简单的分析下概率就知道可行性有多低了。
文件的特征码本质上就是hash,hash空间是相当稀疏的。 以git用40位sha1编码文件对象为例,不考虑碰撞的话,整个hash空间能编码16^40=1.46*10^48个文件。 全球人口不过才7*10^9,就算每人上传一个hash完全不同的文件,也还连hash空间的零头都占不到。 想用hash碰撞到任意一个文件?除非你恰好有一份一模一样的文件,否则别想了。不过你都有一样的文件了,还碰撞神马。 |
14
dorentus 2014-09-12 16:04:54 +08:00 1
@akfish 楼主想做的似乎不是去碰撞试。而是这样(假如我想分享一个文件给别人):
1. 我先通过某些方式获得百度云内部使用的、该文件的特征数据(文件大小、哈希值之类) 2. 我把这个文件的特征数据给你 3. 你拿到这个文件的特征数据之后,通过某些方式欺骗百度的客户端,把这个文件添加到自己的账号下 如果像上面说的百度是直接提供了那些接口的话,倒是可以简单实现…… |
17
zmj1316 2014-09-12 17:16:00 +08:00
当初115封分享的时候大家不就是这么干的么
|
18
ZzFoo 2014-09-12 17:42:12 +08:00
这是我用百度云上传时抓取到的request。
POST /api/rapidupload?clienttype=8&devuid=BDIMXV2%2DO%5F328CCC7C9BAE4DC8B3C1D118284819FE%2DC%5F0%2DD%5F101118PBN406X7GJGSJL%2DM%5F60EB69B81D44%2DV%5F10E697A0&channel=00000000000000000000000000000000&version=4.5.0.7&logid=JwAxADQAMQAwADUAMQAyADAAMgAxACwAMQA5ADIALgAxADYAOAAuADEALgAzACwANQA2ADUA%0AJwA%3D HTTP/1.1..Host: pan.baidu.com..Accept: */*..Cookie:BDUSS=TZ5SHd0TEhQSjlyRVZhWklyYkstdk1HbWpmQmlrQVQ2ci1vSkJXLTRlSGxQVHBVQVFBQUFBJCQAAAAAAAAAAAEAAADP5xAXxcLR9LnitcTDqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWwElTlsB..User-Agent: netdisk;4.5.0.7;PC;PC-Windows;6.1.7601;WindowsBaiduYunGuanJia..Content-Length: 187..Content-Type: application/x-www-form-urlencoded....path=/Friends.S01E01.UNCUT.DVDRip.XviD-SAiNTS.avi&content-length=245096448&content-md5=f50c85023b19adca96996d77ac640ba8&slice-md5=53aff60319468c7fcdd1f166073ab92e&content-crc32=3088105606 所以每次只要把除了cookie之外的request告诉别人是不是就行了.. |
19
ZzFoo 2014-09-12 17:45:48 +08:00
有没有比较简单的方法模拟一个post请求呢。。。。
|
20
ZzFoo 2014-09-12 18:29:39 +08:00
上传成功了。。
|
27
akfish 2014-09-12 20:34:25 +08:00
@Automan 那不同,前提是你已知要碰撞的文件,然后找个hash一样的文件,而不是随便猜一个已经被用到的hash。
Anyway,之前也没理解请lz的意思。 |
28
takato 2014-09-12 20:42:02 +08:00
@ZzFoo 研究的方向是不是应该反一下?因为上传的文件的MD5我们随时都可以算出来,你应该研究一下下载API里面都需要些什么,我把Parameter都抓下来了:
xcode:3d15375f303751525d53953779032e191f4f5f9bc8fd50d6837047dfb5e85c39 fid:369186934-250528-648359378707291 time:1410525386 sign:FDTAXER-DCb740ccc5511e5e8fedcff06b081203-YN48O3OWZ2ZsZvN/nI9rLTvtdqQ= to:cb fm:Nin,B,T,t sta_dx:25 sta_cs:20 sta_ft:dmg sta_ct:1 newver:1 newfm:1 flow_ver:3 expires:8h rt:sh r:346770198 mlogid:4234836019 vuk:- vbdid:3385041692 fn:Lyn153.dmg wshc_tag:0 wsts_tag:5412e8ca wsid_tag:da5197fd wsiphost:ipdbm 看起来似乎可行的可能性不大。。。 |
29
takato 2014-09-12 20:44:28 +08:00
@ZzFoo Post请求分分钟就能造出来,比如chrome下的插件Postman,但是问题在于这些参数你弄不懂是啥意思。。。甚至有些参数你很难伪造。
试想一下,如果伪造很容易,百度不就会被直接盗链么? |
30
akfish 2014-09-12 20:58:59 +08:00
|
31
takato 2014-09-12 21:35:12 +08:00
@akfish 请注意,我们要的是调用下载,那么要调用我的那个API,而不是上传API,那么我问你,那个sign你如何确定?显然这里是个签名信息。还有一些其他字段的含义呢?
|
32
akfish 2014-09-12 21:38:48 +08:00
@takato 你显然没搞清楚这个漏洞的利用途径,我伪造一次上传,在我的网盘里就会有那个文件,然后我正常的从我的网盘上把那个文件拖下来就行了。
|
33
strikehht OP 感谢楼上各位达人~
该方法还是不要过于广泛传播为妙。 此帖应尽快沉没,以防不测 |
34
ProfFan 2014-09-13 02:54:42 +08:00
看起来很不错啊。。。可惜magnet用的是sha-1。。。
|
36
lentrody 2015-07-27 10:14:05 +08:00
刚看到个类似115提取式的东西
C2A2BAFCF86548AC5758916B3E2955C6#D220DCCA4EC34E7E9A413B7391740A85#463584555#COMIC Shingeki 2015-07.rar 前部分有两段HASH,第一段是整个文件的MD5,感觉像是用在百度盘之类的地方,但找不到有相关工具,有没有人知道详情? |
37
lentrody 2015-07-27 10:26:20 +08:00
哈找到了,http://jixun.org/p/3232 也就跟楼主所说的东西一样了
|