V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kaishui00
V2EX  ›  Python

帮忙看看这个个文件上传的请求怎么写?

  •  
  •   kaishui00 · 2021-09-07 22:28:34 +08:00 · 1827 次点击
    这是一个创建于 1155 天前的主题,其中的信息可能已经有所发展或是发生改变。
    PUT /encrypt/v2/7cHlSOheO88A+aVzgEbnsVXBzCWlajvoXNhFHCYkq3vSDXXqyj1d17eTaxSEDonobCEX7rooALOxBdu5595WaJOz?partNumber=6&uploadID=/t00os-cn-v-0015c5/e2d9bf7612c441b984c03ca306c4f04e HTTP/1.1
    Host: XXXXXXXXXXXXXXXX.com
    Connection: close
    Content-Length: 5242880
    sec-ch-ua: ";Not A Brand";v="99", "Chromium";v="88"
    X-Storage-U: 110214908180
    Content-CRC32: 993348d1
    sec-ch-ua-mobile: ?0
    Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Content-Type: application/octet-stream
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
    Content-Disposition: attachment; filename="undefined"
    Accept: */*
    Origin: https://xxxxxxxxxxxxxxx.com
    Sec-Fetch-Site: same-site
    Sec-Fetch-Mode: cors
    Sec-Fetch-Dest: empty
    Referer: https://xxxxxxxxxxxxxxx.com
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    
    1wc  jR=ù¢¸Í
    ¶ˆ\æ t6jè ŠcÓ¾0ÅÍcŽ§< ×#êWí ± é<²•ãn~ ™% ?ÊZA }ÁH´"ˆ?Û'ÙÕ¢?;ì¥~;¶³ Xl3]„ ë _	™s,-¢ðLsµô Ìѓ¡ß…†ÞÌfǺâ¯ëŠ?i̤b 4¾  ΅ôÊv¾÷O„% Ôã
    b ) o ñæí"ðY˜«6 *¤+C¤Ñ(Tø&®zûç$g øOvqäž×ÌLùðEçm*ð¡ÌÂ
    Øѓ.Ò7ϙn ‹(  8hÿ‚Ñ
    —ôï_ @퇧Ø1¯öåŠKL´b¥à¦cŠ¨Àô ”J
    µ¢ wRåJæ˚ìx–?ÏÔÏ;Ê7µâoü% ç hÿœâ¤§Š¿þ¿ 
    .........
    

    以上是 burpsuite 抓的结果,怎么写都传不上去。Content-Type: application/octet-stream 头大,求各位解惑!!

    9 条回复    2021-09-08 15:11:46 +08:00
    ch2
        1
    ch2  
       2021-09-07 22:44:54 +08:00
    除了反编译,没人知道是怎么请求
    sujin190
        2
    sujin190  
       2021-09-08 00:00:30 +08:00
    猜测整个请求体就是这个文件内容吧,没有任何编码,然后要在 Content-Length 指明文件长度
    dzdh
        3
    dzdh  
       2021-09-08 00:07:58 +08:00
    啥语言~~ 这个报文是用啥东西请求的
    CEBBCAT
        4
    CEBBCAT  
       2021-09-08 00:12:08 +08:00 via Android
    你知道这个是要正确加密才能上传的吧?
    kaishui00
        5
    kaishui00  
    OP
       2021-09-08 09:34:11 +08:00
    @sujin190 对是文件内容,我用 python requests 发送 data 时,不知道怎么把文件读取这编码,请求体的内容是和 vscode 直接打开一样的。
    '''python
    kaishui00
        6
    kaishui00  
    OP
       2021-09-08 09:35:37 +08:00
    @sujin190 with open('251f2aa026c222ddf9daef601df3272a.mp4') as f: 直接发 f 也不行
    kaishui00
        7
    kaishui00  
    OP
       2021-09-08 09:38:23 +08:00
    @CEBBCAT 貌似不用,请求体内容和我用 vscode 直接打开是一样的
    sujin190
        8
    sujin190  
       2021-09-08 09:45:18 +08:00
    @kaishui00 #6 抓包发的内容格式也一样么?一样的话不应该啊,注意请求头也要设置完整啊,比如要正确设置 content-length,还有这个 Content-CRC32,如果服务器有 crc32 校验的话,不设置也会失败的吧,其它自定义的还有 X-Storage-U 不知道干啥的,Authorization 也要设置正确的登录校验信息
    2i2Re2PLMaDnghL
        9
    2i2Re2PLMaDnghL  
       2021-09-08 15:11:46 +08:00
    二进制内容 open 要 mode='rb',不然你读出来不保真。
    然后发 f.read()
    或者你也可以考虑用 requests 的 files 选项,正确地传文件。
    docs.python-requests[.]org/en/master/user/quickstart/#post-a-multipart-encoded-file
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1062 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.