【笔记】百度网盘实战抓包分析获取文件真实地址思路
本帖最后由 奋斗丶小Z 于 2016-2-3 18:13 编辑百度作恶,群起伐之、
今天给大家写一个百度网盘的真实地址解析,并附上php代码。
大神勿喷,本人技术较low。
用到的工具:
chrome浏览器(用于抓包,分析网络资源)
php Curl
json在线调试工具
好了,教程开始
这里我们随便找一个百度网盘的外链,比如:http://pan.baidu.com/s/1JDx5k
这是一个压缩文件,打开以后我们看到这样的界面
点击下载,按照网站开发的基本思路,这里应该是js的触发事件。什么意思呢?也就是说,点击下载按钮,js会执行一些下载文件的操作。
重点就在这里,点击下载肯定就是解析文件的真实地址嘛。
好,我们按F12键,打开chrome浏览器自带的开发者调试工具,点击network,开始监控网络资源。
然后我们点击百度网盘的下载。
就出现了这样的界面
这个跟上个界面一样,也是一层js,这个才是最关键的按钮操作。因为点击它,我们就能直接下载,就能拿到真实文件地址!
OK,这个时候我们先不忙点击,现在开始抓包。
然后点击。
然后抓到一个链接类似下面这样
http://pan.baidu.com/api/sharedownload?sign=9b02171f99d21999d752e5f47786c69afffc0503×tamp=1454472898&bdstoken=f690349a002b3a798ee880f82bb30d51&channel=chunlei&clienttype=0&web=1&app_id=250528
这是抓到的http头参数,和提交的post参数
好,我们看看这段请求返回的数据
它返回的是一段json数据,点击preview我们可以看到详情,注意dlink字段,这个字段就是百度返回的文件真实地址。
ok我们知道了,这段请求就是获取文件地址的包,那么我们开始分析参数,用于构造包头
我们看到这段链接http://pan.baidu.com/api/sharedownload?sign=9b02171f99d21999d752e5f47786c69afffc0503×tamp=1454472898&bdstoken=f690349a002b3a798ee880f82bb30d51&channel=chunlei&clienttype=0&web=1&app_id=250528
一共有7个参数,分别是
sign
timestamp
bdstoken
channel
clienttpe
web
app_id
其中&channel=chunlei&clienttype=0&web=1&app_id=250528这四个参数是固定的,我们不用管。
我们只需要获取 sign,timestamp,还有bdstoken,这三个参数
这三个参数怎么来呢?
你猜?
其实百度已经把这些参数全暴露出来了,我们直接右键查看源代码。参数里面全有
好了,我们一步一步得到 sign,timestamp,还有bdstoken这三个参数的值。
其实这些参数很好找,我们直接ctrl+f就能一一找出来。
好了,url链接我们找出参数拼接以后,接着就是找post包的数据
这五个参数其实源代码里里面也有,直接一一用正则匹配出来,在组合就可以了。
下面附上我写的php代码
以上解析只能针对没有密码加密的分享链接,带密码的我没有去研究,你们直接举一反三即可。
还有百度的验证码限制不知道怎么搞,有思路和渠道的大神望提供一下。
本人文笔粗糙。但是大致思路就是这样,我写的很急,写完就要去坐车回家过年了。
俗话说,师傅领进门,修行靠个人了。
最后附带一句,cookie记得自己去抓。
有时间我会出个视频教程,教你们怎么去分析
小弟到此一游 发表于 2016-2-3 14:41
LZ你的cookies 还在源码里呢 赶紧删啦 把cookies注入浏览器可以登你号哦我截了一个图你的号的 ...
x谢谢提醒,走太急忘了,已改密码,我相信吾爱的人不会搞破坏,况且我也没啥东西哈哈 LZ你的cookies 还在源码里呢 赶紧删啦 把cookies注入浏览器可以登你号哦我截了一个图你的号的图 这个吊!前排支持个嘿嘿。。。。 赞,通俗易懂 百度网盘真实地址下载速度也比较low,要是迅雷没有别人离线好的也头疼。 哦,这样下载的文件会自动中断。。。。 学习了,LZ很强大! 百度网盘助手你值得拥有 很不错,值得学习