一条大团团 发表于 2020-9-2 21:16

某某某接口上传任意文件的方法 可外链

本帖最后由 一条大团团 于 2020-9-3 11:56 编辑

利用某接口上传任意文件

获取 Cookies 中 SESSION 值 15行

浏览器登录后按F12
选network
鼠标移至右上角头像点账号管理
network项下的accounts
headers里的cookie找到SESSION=xxxxxxxxxx;
将xxxxx替换代码里的值
import json
import requests
import time
import sys
import os
import math

# 严正声明:本项目仅供测试交流使用。任何人不得上传任何违反中国法律的文件行为,若有上传非法违法文件,一切后果由上传者自负!
# 严正声明:本项目仅供测试交流使用。任何人不得上传任何违反中国法律的文件行为,若有上传非法违法文件,一切后果由上传者自负!
# 严正声明:本项目仅供测试交流使用。任何人不得上传任何违反中国法律的文件行为,若有上传非法违法文件,一切后果由上传者自负!

# 文件运行完整路径 print(sys.argv)
# 文件运行第一参数 print(sys.argv)
# 登录 http://jianwai.youdao.com 工作台 获取 Cookies 中 SESSION 值
Session = "2fb9865f-xxxx-xxxx-xxxx-20b55c5254fb"
# 模拟 请求头部 置入 Cookies SESSION
Header = {
"Cookie":"SESSION="+Session,
"Connection":"keep-alive",
}
# 用户信息接口
USER_INFO_API = "http://nmtp.youdao.com/api/getUserInfo"
# 临时的上传接口 只有通过这个接口才可以获取文件位置 对文件追加二进制数据
UPLOAD_TEMP_API = "http://nmtp.youdao.com/api/admin/nostoken?isPrivate=false&suffix="
# 返回时间
def GETDATE(int):
      return str(time.strftime("%H:%M:%S", time.localtime())) # 17:51:23
      # return str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 2020-07-12 17:05:32
# 返回 01 89 双位 数字
def ORDERNUMBER(int):
      if int < 10:
                return "0"+str(int)
      else:
                return str(int)
print("["+GETDATE(1)+"] 可以通过程序启动时传参的方式,直接上传文件。\n例如: " + sys.argv + " D:\\Pic\\3.jpg")
# 如果输入了第一个参数
try:
      FILE_UPLOAD_PATH = sys.argv
except:
      # 接收 文件路径
      FILE_UPLOAD_PATH = input("["+GETDATE(1)+"] "+"把要上传的文件拖进来,或填写完整路径: ").replace("\"","")
# 文件类型 文件后缀 从文件路径 \ 最后一次出现位置 一直取文本到结尾
# FILE_UPLOAD_TYPE = "/" + FILE_UPLOAD_PATH # 文件夹路径
FILE_UPLOAD_TYPE = FILE_UPLOAD_PATH
# 根据文件类型 确定文件后缀 获取文件上传接口
# FILE_UPLOAD_TYPE_UPLOAD_TEMP_API = UPLOAD_TEMP_API + FILE_UPLOAD_TYPE
# print(FILE_UPLOAD_TYPE_UPLOAD_TEMP_API)
# exit()
# 请求 用户信息
LOGIN_STATUS = requests.get(USER_INFO_API,headers = Header).text
# 请求 获取 上传接口
UPLOAD_TEMP_STATUS = requests.get(UPLOAD_TEMP_API + FILE_UPLOAD_TYPE,headers=Header).text
# 请求 获取 上传接口 JSON
UPLOAD_TEMP_JSON = json.loads(UPLOAD_TEMP_STATUS)
# 判断是否成功获取上传接口
if UPLOAD_TEMP_JSON["success"] == False:
      print("["+GETDATE(1)+"] "+"获取上传接口失败,返回内容: "+UPLOAD_TEMP_JSON["message"])
      exit()
# 上传接口 # http://nosup-hz1.127.net/
UPLOAD_TEMP_API_URL = "http://45.127.129.6/" + UPLOAD_TEMP_JSON["relatedObject"]["bucket"] + "/" + UPLOAD_TEMP_JSON["relatedObject"]["objectname"] + "?offset=0&complete=true&context=&version=1.0"
# 上传接口 使用凭证 token
UPLOAD_TEMP_TOKEN_URL = UPLOAD_TEMP_JSON["relatedObject"]["token"]
# 上传接口 使用凭证 token 加入 请求头部
Header["x-nos-token"] = UPLOAD_TEMP_TOKEN_URL
# 以二进制读入文件
try:
      UPLOAD_FILE_DATA = open(FILE_UPLOAD_PATH,"rb")
except:
      print("["+GETDATE(1)+"] 文件或路径错误: " + FILE_UPLOAD_PATH)
      exit()
# 上传提交
UPLOAD_START_STATUS_TEMP = requests.post(UPLOAD_TEMP_API_URL,UPLOAD_FILE_DATA,headers = Header).text
# 关闭文件
UPLOAD_FILE_DATA.close()
# 上传结束 文件 URL
UPLOAD_OK_FILE_URL = "http://nmtp.nos-hz.163yun.com/" + UPLOAD_TEMP_JSON["relatedObject"]["objectname"]
print("["+GETDATE(1)+"] 上传成功: "+UPLOAD_OK_FILE_URL)
os("pause")
exit()

一条大团团 发表于 2020-9-3 11:57

侧耳i 发表于 2020-9-3 00:28
总是报错:获取上传接口失败,返回内容: Session过期,请重新登录!
我的session格式是正确的啊

浏览器登录后按F12
选network
鼠标移至右上角头像点账号管理
network项下的accounts
headers里的cookie找到SESSION=xxxxxxxxxx;
将xxxxx替换代码里的值

一条大团团 发表于 2020-9-3 12:15

ColoThor 发表于 2020-9-3 09:48
Cookie 中只有 NTES_SESS

浏览器登录后按F12
选network
鼠标移至右上角头像点账号管理
network项下的accounts
headers里的cookie找到SESSION=xxxxxxxxxx;
将xxxxx替换代码里的值

iPhone8Plus 发表于 2020-9-2 22:49

一条大团团 发表于 2020-9-2 23:01

iPhone8Plus 发表于 2020-9-2 22:49
你这个只能上传 500MB 以内的文件。
这个 5400MB 了解一下:http://nmtp.nos-hz.163yun.com/COMMON_VIDEO_ ...

临时外链用不了那么大

hlrlqy 发表于 2020-9-2 23:02

iPhone8Plus 发表于 2020-9-2 22:49
你这个只能上传 500MB 以内的文件。
这个 5400MB 了解一下:http://nmtp.nos-hz.163yun.com/COMMON_VIDEO_ ...

什么原理?

iPhone8Plus 发表于 2020-9-2 23:09

believed 发表于 2020-9-2 23:12

iPhone8Plus 发表于 2020-9-2 22:49
你这个只能上传 500MB 以内的文件。
这个 5400MB 了解一下:http://nmtp.nos-hz.163yun.com/COMMON_VIDEO_ ...

下载速度很快 30MB/S

iPhone8Plus 发表于 2020-9-2 23:16

hlrlqy 发表于 2020-9-2 23:56

iPhone8Plus 发表于 2020-9-2 23:09
我也不懂 不过我发的教程你可以看看 或许有帮助

只能传视频那没事了

侧耳i 发表于 2020-9-3 00:28

总是报错:获取上传接口失败,返回内容: Session过期,请重新登录!
我的session格式是正确的啊{:1_904:}

ColoThor 发表于 2020-9-3 09:48

Cookie 中只有 NTES_SESS
页: [1] 2
查看完整版本: 某某某接口上传任意文件的方法 可外链