Full Disclosure mailing list archives

Weak password reset token & code exec in ownCloud 3.0.0


From: luks <luks () sploit de>
Date: Thu, 19 Apr 2012 19:55:55 +0200

= weak password reset token =

The way how ownCloud generates password reset tokens is highly insecure and
can be used to overtake arbitrary accounts by solely knowing the
corresponding
username.


file: core/lostpassword/index.php

15 $token = sha1($_POST['user']+uniqId());


due to the usage of the + operator, both operands (strings) are
interpreted as
numerical values
(http://php.net/manual/en/language.types.type-juggling.php).
uniqId() is a simple timestamp in its hex representation. this
timestamps starts
with "4f" until 2012-7-13 and is therefore evaluated as a 4
(http://xkcd.com/221/).

this allows an attacker to trivially predict the generated token and
reset the
password.


= code exec  =

user uploaded files are stored in the /data/<user>/files directory of the
ownCloud webroot. /data is secured by a .htaccess file ("deny from all")
but users can overwrite this setting by uploading a new .htaccess to their
files directory (e.g. "allow from all").

by uploading a php script and circumventing the .htaccess restriction users
are able to execute code by requesting the uploaded script via the
following url:
http://<host>/owncloud/data/<user>/files/<script>

(uploading of a .htaccess file is obviously only needed on webservers
which support them in the first place).


= Disclosure Timeline =

2012-04-03: contacted the ownCloud team
2012-04-04: fixes
http://gitorious.org/owncloud/owncloud/commit/85f9869f6925ef52c1015916bbc28e13c15abc73
http://gitorious.org/owncloud/owncloud/commit/acdce2b1e01f7c0a77b7e7949540e1b0ba94efd1
2012-04-19: Disclosure



You can find a metasploit module attached to this email which exploits
these two
vulnerabilities to achieve code execution.

Attachment: owncloud.rb
Description:

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Current thread: