留坑预警!!貌似百度会封掉进行爆破的ip,所以暂且先不写了
贴一个调用别人接口的代码
import requests
import re
from requests.exceptions import HTTPError
if __name__=="__main__":
url=input("Input URL")
#测试用例 http://pan.baidu.com/s/1eR4vrk2 提取码8ij2
wpurl="https://nuexini.gq/bdp.php?url="+url
#访问这个网址,可能直接会有提取码
#如果这里没有提取码的话就只能爆破了
try:
wpres=requests.get(wpurl)
wpres.raise_for_status()
wpres.encoding="gbk"
except HTTPError:
print("HTTPError")
except ConnectionError:
print("Failed to connect!")
wphtml=wpres.text
#返回JSON格式的数据
#提取码位置在"access_code":"8ij2"
wporiginal=re.findall("access_code\":\"....",wphtml)
if len(wporiginal)!=0:
wporiginal=str(wporiginal[0]).split("\"")
print("pwd is",wporiginal[2])
else:
print("Sorry,we can't find pwd of this url or it doesn't actually need a pwd.")
print("Maybe u want to try to brute force?")
BF=input("Enter \"y\" to continue.")
if BF=="y":
print("Start Brute Force...")
下面是抓包分析准备爆破的部分,不完整,有空继续
从Fiddler开始
不必多说,在win下学抓包的必备软件。另外推荐一个Firefox插件Toggle Fiddler Proxy,开启后Firefox所有流量都走Fiddler,单击关闭不再抓包,十分好用,配置证书等基本教程就不讲了,进入正题。
测试用链接:
https://pan.baidu.com/s/1utOcrcv4EuQ4juj9jb4ENA
提取码
579e
打开Fiddler、Firefox、TFP插件,F12,输入测试用链接,跳转
Fiddler抓的第一个包是
然后跳转至
注意surl首位的1没了
输入一个错误的提取码8888抓一下
可以看到应该是用POST方式向此网址提交了表单
查看此包的TextView
而在Response中
然后输入正确的提取码
Response
errno变成了0,稍后会根据errno的value作为是否停止爆破的依据
再来看一下如何得到这个网址的各项参数
输入错误提取码时的GET请求参数如下
/share/verify?
surl=utOcrcv4EuQ4juj9jb4ENA
&t=1566969477016
&channel=chunlei
&web=1
&app_id=250528
&bdstoken=null
&logid=MTU2Njk2OTQ3NzAxODAuODI4MjY1Mjk5ODQ5MjQ0NA==
&clienttype=0
表单
输入正确提取码时的GET请求参数
/share/verify?
surl=utOcrcv4EuQ4juj9jb4ENA
&t=1566969747746
&channel=chunlei
&web=1
&app_id=250528
&bdstoken=null
&logid=MTU2Njk2OTc0Nzc0NzAuMDEwMzUxNjA2MzAyMjgyMzc5
&clienttype=0
表单
surl 链接末尾的特征字段去掉首位
t
channel=chunlei 固定
web=1 固定
app_id=250528 固定
bdstoken=null 固定
logid
clienttype=0 固定
Tips:抓的时候记得经常清cookies,不然输过一次正确的提取码之后就直接跳转进入保存文件的页面了,推荐插件Web Developer
那么去哪找t、logid这两项参数呢
查看源码
view-source:https://pan.baidu.com/share/init?surl=utOcrcv4EuQ4juj9jb4ENA
按ctrl+f在页面中查找t=
在代码中用正则提取这13位数字