2024-09-20 09:53:08 +00:00
|
|
|
import tempfile
|
|
|
|
from pyfsig import constants
|
|
|
|
import requests
|
|
|
|
import mimetypes
|
2024-09-20 10:26:48 +00:00
|
|
|
import exploadlib.parse
|
2024-09-20 09:53:08 +00:00
|
|
|
mimetypes.init()
|
|
|
|
|
|
|
|
|
|
|
|
def grabsig(ext):
|
|
|
|
for sig in constants.SIGNATURES:
|
|
|
|
if sig["file_extension"] == ext:
|
|
|
|
return "".join([chr(h) for h in sig["hex"]]).encode("utf-8"), mimetypes.types_map[f".{ext}"]
|
|
|
|
|
|
|
|
def fileupload():
|
|
|
|
ext=args.ext
|
|
|
|
name=args.name
|
|
|
|
filename=args.filename
|
|
|
|
with open(args.payload,"r") as payload:
|
|
|
|
content=payload.read().encode("utf-8")
|
|
|
|
with tempfile.NamedTemporaryFile() as tmp:
|
2024-09-20 10:21:30 +00:00
|
|
|
try:
|
|
|
|
sig,mime=grabsig(ext)
|
|
|
|
except TypeError:
|
|
|
|
print("Error: most likely this file type is not in the available signature list")
|
|
|
|
exit()
|
2024-09-20 09:53:08 +00:00
|
|
|
tmp.write(sig)
|
|
|
|
tmp.write(b"\n")
|
|
|
|
tmp.write(content)
|
|
|
|
tmp.seek(0)
|
|
|
|
files = {name: (filename, tmp, mime)}
|
|
|
|
r = requests.post(args.url, files=files)
|
|
|
|
print(r.text)
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2024-09-20 10:33:43 +00:00
|
|
|
args=exploadlib.parse.parser()
|
2024-09-20 09:53:08 +00:00
|
|
|
fileupload()
|