首页 > 编程语言 >记录一次网站上传的python代替方法

记录一次网站上传的python代替方法

时间:2022-08-28 12:56:25浏览次数:64  
标签:cn python mml 代替 sjtu edu 上传 Fetch VRprofile

网址:https://tool2-mml.sjtu.edu.cn/VRprofile/VRprofile.php

这个网站需要上传文件 

思路抓包看下网络请求 开始看的时候发现没啥

然后用wireshark 看了下 发现文件上传了  

由于是php所以百度了一下格式写成了python脚本 上传发现成功Sucess

 于是分析请求里的参数 看见了个是

1.请求头随机字符 2.还有cookies为解决

先看随机字符 发现 字符引用 首页 自定义参数  于是自己定义名字上传服务器发现可以 然后其他随机字符可以自定义 

然后看cookies 发现网站引用多个站cookies 删除cookies 发现未生成新的cookeis 就不用分析了

脚本的话放在下面 交流学习

import re

import requests
import time


# cookies = {
#     'cookie_consent_user_accepted': 'true',
#     '_ga': 'GA1.3.1321479164.1661655058',
#     '_gid': 'GA1.3.493434445.1661655058',
#     'cookie_consent_level': '%7B%22strictly-necessary%22%3Atrue%2C%22functionality%22%3Atrue%2C%22tracking%22%3Atrue%2C%22targeting%22%3Atrue%7D',
# }

def put_file(filename, id):
    headers = {
        'Host': 'tool2-mml.sjtu.edu.cn',
        'Cache-Control': 'max-age=0',
        'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Microsoft Edge";v="104"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'Upgrade-Insecure-Requests': '1',
        'Origin': 'https://tool2-mml.sjtu.edu.cn',
        'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryPnrYhj4aC8y9CD0E',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-Mode': 'navigate',
        'Sec-Fetch-User': '?1',
        'Sec-Fetch-Dest': 'document',
        'Referer': 'https://tool2-mml.sjtu.edu.cn/VRprofile/VRprofile.php',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    }

    data = '------WebKitFormBoundaryPnrYhj4aC8y9CD0E\nContent-Disposition: form-data; name="inputFile"; filename="{}"\nContent-Type: application/octet-stream\n\n{}------WebKitFormBoundaryPnrYhj4aC8y9CD0E\nContent-Disposition: form-data; name="optionsRadios"\n\nChromosome\n------WebKitFormBoundaryPnrYhj4aC8y9CD0E\nContent-Disposition: form-data; name="entry"\n\n{}\n------WebKitFormBoundaryPnrYhj4aC8y9CD0E--\n'.format(
        filename, open(fr'{filename}', 'rb').read().decode('utf-8'), id)
    response = requests.post('https://tool2-mml.sjtu.edu.cn/cgi-bin/VRprofile/VRprofile1.cgi', headers=headers,
                             data=data)
    print(response.status_code, f'上传成功 网址 https://tool2-mml.sjtu.edu.cn/VRprofile/angular1.php?ty=c&job={id}')


def dispose_page():
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
        'Cache-Control': 'no-cache',
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'Referer': 'https://tool2-mml.sjtu.edu.cn/VRprofile/VRprofile.php',
        'Sec-Fetch-Dest': 'document',
        'Sec-Fetch-Mode': 'navigate',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-User': '?1',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70',
        'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Microsoft Edge";v="104"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
    }
    response = requests.get('https://tool2-mml.sjtu.edu.cn/VRprofile/VRprofile.php', headers=headers)
    if response.status_code == 200:
        id = re.findall('randomString = "(.+)";', response.text)[0]
        print(id)


if __name__ == '__main__':
    # put_file('Bacillus thuringiensis 34.fasta','bbbbbbb')
    dispose_page()
View Code

 

标签:cn,python,mml,代替,sjtu,edu,上传,Fetch,VRprofile
From: https://www.cnblogs.com/inkser/p/16632571.html

相关文章

  • 6.8 python基础列表元素的添加操作
     #append()list=[10,20,30,40,50,60,70,80]#列表后面添加元素,可以施单个元素或列表整体list.append(20)#后面添加单个元素print(list)list.append([30,90])#后面......
  • python读取csv文件
    参考此贴:csv格式文件之csv.DictReader()方法_booze-J的博客-CSDN博客_csv.dictreader官方帮助:csv—CSVFileReadingandWriting—Python3.10.6documentationcsv......
  • Python random 的使用
    导入importrandom 随机数生成//用来生成[a,b]之间的随意整数,包括两个边界值。print(random.randint(0,9))//用来随机生成一个0到1之间的浮点数,包括零。0.15790......
  • Python 报错:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char
    报错内容:json.decoder.JSONDecodeError:Expectingvalue:line1column1(char0) 报错代码:print(res.json()) 报错原因:打印请求返回值报错该接口返回值......
  • python before_request详解
    before_request顾名思义,就是在request请求之前做的事情。它会在每一个请求来的时候,都会先去请求before_request注册的函数。before_request需要注册一个函数,可以不需要参......
  • python after_request详解
    after_request是在每一个请求结束之后,再请求的一个钩子函数。它需要有一个参数接收请求的响应。这个示例是使用after_request,对每一个请求后的响应进行分类,从而在请求完成......
  • python文件操作 r w a
    文件操作创建文件"asdf.txt"open()#打开file#文件的位置(路径)mode#操作文件的模式encoding#文件编码方......
  • Python_for_else
    循环“自然”终结(循环条件为假)时else从句会被执行一次,而当循环是由break语句中断时,else子句就不被执行。与for语句相似,while语句中的else子句的语意是一样的∶else块在......
  • python之数据类型转换
    一、隐式类型转换隐式类型转换-自动完成我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失num_int=123num_flo=1.2......
  • Python-——面向对象
    面向对象编程范式面向对象指的是一种编程范式;编程范式:可以理解为一种编程方式,编程规范,编程模式面向过程面向过程编程:是一种以过程为核心的编程,主要是在解决一个问题......